12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 'use strict'
- /* 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()
- }
- }
- }
|