aboutsummaryrefslogtreecommitdiffstats
path: root/users.js
diff options
context:
space:
mode:
Diffstat (limited to 'users.js')
-rw-r--r--users.js46
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)
+ }
+}