joyent-portal/spikes/metrics-service/graphql/src/schema.js
2016-11-04 17:11:35 +00:00

62 lines
1007 B
JavaScript

const graphql = require('graphql');
const {
GraphQLID,
GraphQLSchema,
GraphQLObjectType,
GraphQLString
} = graphql;
const EventType = new GraphQLObjectType({
name: 'EventType',
fields: {
value: {
type: GraphQLString
},
when: {
type: GraphQLString
}
}
});
const EventSubscription = {
type: EventType,
args: {
container: {
type: GraphQLID
}
},
start: function() {
console.log('start', arguments);
},
stop: function() {
console.log('stop', arguments);
},
resolve: function() {
console.log('resolve', arguments);
}
};
const subscription = new GraphQLObjectType({
name: 'RootSubscriptionType',
fields: {
events: EventSubscription
}
});
module.exports = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Q',
fields: {
a: { type: GraphQLString },
}
}),
mutation: new GraphQLObjectType({
name: 'M',
fields: {
c: { type: GraphQLString },
}
}),
subscription
});