house, power, energy data generators, savers

This commit is contained in:
Eric Hulburd
2016-02-07 15:32:02 -06:00
parent d1e230c6fd
commit 3cb2320300
47 changed files with 246 additions and 89685 deletions

View File

@@ -0,0 +1,19 @@
import {
fromGlobalId,
nodeDefinitions,
} from 'graphql-relay';
import DB from './../database'
var {nodeInterface, nodeField} = nodeDefinitions(
(globalId) => {
var {graphql_type_name, id} = fromGlobalId(globalId),
model = DB[graphql_type_name];
return model.findOne({where: {id: id}});
},
(instance) => {
return instance.Model().graphql_type;
}
);
export {nodeInterface, nodeField};

View File

@@ -0,0 +1,27 @@
type House implements Node {
id: ID!
name: String!
power_data(after: String, first: Int, before: String, last: Int): [PowerDatum]
habitants(after: String, first: Int, before: String, last: Int): [User]
}
interface Node {
id: ID!
}
type PowerDatum implements Node {
id: ID!
power: Float
time: Int
}
type Query {
node(id: ID!): Node
viewer: User
}
type User implements Node {
id: ID!
username: String!
house: House
}

View File

@@ -0,0 +1,27 @@
import {
GraphQLObjectType,
GraphQLSchema
} from 'graphql';
import {nodeField} from './node';
import DB from './../database';
export default function(){
var queryType = new GraphQLObjectType({
name: 'Query',
fields: () => ({
node: nodeField,
viewer: {
type: DB.User.graphql_type,
resolve: (_, args) => {
return DB.User.findOne({where: {username: 'bethany'}});
}
},
}),
});
return new GraphQLSchema({
query: queryType
});
}

File diff suppressed because it is too large Load Diff