diff options
Diffstat (limited to 'users.js')
| -rw-r--r-- | users.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/users.js b/users.js new file mode 100644 index 00000000..3a18d38e --- /dev/null +++ b/users.js @@ -0,0 +1,46 @@ +import { resolver, defaultArgs, defaultListArgs, attributeFields } from 'graphql-sequelize' +import { + graphql, + GraphQLSchema, + GraphQLObjectType, + GraphQLInputObjectType, + GraphQLString, + GraphQLInt, + GraphQLNonNull, + GraphQLList +} from 'graphql' + +module.exports = (db, fields, types, options) => { + options.after = (results, args) => { + return results.sort((a, b) => { + if (a.name === b.name) return 0 + return a.name > b.name ? 1 : -1 + }) + } + + db['User'].Membership = db['User'].hasOne(db['Membership']) + + db['RoleMap'].Users = db['RoleMap'].belongsToMany(db['User'], { + as: 'users', + through: db['UserRoles'], + foreignKey: 'roleId', + otherKey: 'userId' + }) + + db['User'].Roles = db['User'].belongsToMany(db['RoleMap'], { + as: 'roles', + through: db['UserRoles'], + foreignKey: 'userId', + otherKey: 'roleId' + }) + + fields.programs = { + type: new GraphQLList(types['rolemap']), + resolve: resolver(db['User'].Roles) + } + + fields.membership = { + type: types['my_aspnet_membership'], + resolve: resolver(db['User'].Membership) + } +} |
