diff options
| author | Adam Soltys <[email protected]> | 2018-01-28 21:21:53 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2018-01-28 21:21:53 -0800 |
| commit | 5e19d99e48b9c323ecf3795ea77f1e7e7885e4f5 (patch) | |
| tree | 820ce6151258f8e7879edd3615ee331e52b24486 /users.js | |
| parent | 3a26111203f406bd94a2603fe8793c2e5becb737 (diff) | |
| download | coinos-server-5e19d99e48b9c323ecf3795ea77f1e7e7885e4f5.tar.gz coinos-server-5e19d99e48b9c323ecf3795ea77f1e7e7885e4f5.zip | |
use sequelize and mysql
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) + } +} |
