123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /* global wiki */
- const gql = require('graphql')
- module.exports = {
- Query: {
- groups(obj, args, context, info) {
- return wiki.db.Group.findAll({ where: args })
- }
- },
- Mutation: {
- assignUserToGroup(obj, args) {
- return wiki.db.Group.findById(args.groupId).then(grp => {
- if (!grp) {
- throw new gql.GraphQLError('Invalid Group ID')
- }
- return wiki.db.User.findById(args.userId).then(usr => {
- if (!usr) {
- throw new gql.GraphQLError('Invalid User ID')
- }
- return grp.addUser(usr)
- })
- })
- },
- createGroup(obj, args) {
- return wiki.db.Group.create(args)
- },
- deleteGroup(obj, args) {
- return wiki.db.Group.destroy({
- where: {
- id: args.id
- },
- limit: 1
- })
- },
- removeUserFromGroup(obj, args) {
- return wiki.db.Group.findById(args.groupId).then(grp => {
- if (!grp) {
- throw new gql.GraphQLError('Invalid Group ID')
- }
- return wiki.db.User.findById(args.userId).then(usr => {
- if (!usr) {
- throw new gql.GraphQLError('Invalid User ID')
- }
- return grp.removeUser(usr)
- })
- })
- },
- renameGroup(obj, args) {
- return wiki.db.Group.update({
- name: args.name
- }, {
- where: { id: args.id }
- })
- }
- },
- Group: {
- users(grp) {
- return grp.getUsers()
- }
- }
- }
|