create valid relay schema.json
This commit is contained in:
67
models/user.js
Normal file
67
models/user.js
Normal file
@@ -0,0 +1,67 @@
|
||||
import {
|
||||
GraphQLString,
|
||||
GraphQLNonNull,
|
||||
GraphQLObjectType
|
||||
} from 'graphql';
|
||||
|
||||
import {
|
||||
globalIdField,
|
||||
connectionDefinitions,
|
||||
connectionArgs
|
||||
} from 'graphql-relay';
|
||||
|
||||
import DB from "./../config/database";
|
||||
import {nodeInterface} from './../config/graphql/node';
|
||||
|
||||
const NAME = 'User';
|
||||
|
||||
/**
|
||||
* Sequelize Definition
|
||||
*/
|
||||
|
||||
var User = DB.sequelize.define(NAME, {
|
||||
id: {
|
||||
type: DB.Sequelize.INTEGER,
|
||||
primaryKey: true,
|
||||
autoIncrement: true // Automatically gets converted to SERIAL for postgres
|
||||
},
|
||||
username: {
|
||||
type: DB.Sequelize.STRING,
|
||||
unique: true
|
||||
}
|
||||
}, {
|
||||
paranoid: true,
|
||||
underscored: true,
|
||||
tableName: "users",
|
||||
instanceMethods: {
|
||||
|
||||
},
|
||||
classMethods: {
|
||||
set: ()=>{
|
||||
User.belongsTo(DB.House);
|
||||
User.graphql_type = new GraphQLObjectType({
|
||||
name: NAME,
|
||||
description: 'A house',
|
||||
fields: () => ({
|
||||
id: globalIdField(NAME),
|
||||
username: {
|
||||
type: new GraphQLNonNull(GraphQLString)
|
||||
},
|
||||
house: {
|
||||
type: connectionDefinitions({name: DB.House.name, nodeType: DB.House.graphql_type}).connectionType,
|
||||
description: "Returns user's house.",
|
||||
args: connectionArgs,
|
||||
ref: DB.PowerDatum.name,
|
||||
resolve: (user, args) => {
|
||||
return user.getHouse();
|
||||
}
|
||||
}
|
||||
}),
|
||||
interfaces: [nodeInterface]
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
User.name = NAME;
|
||||
module.exports = User;
|
||||
Reference in New Issue
Block a user