feat: GraphQL mutations for User + Group

This commit is contained in:
NGPixel
2017-08-08 22:36:29 -04:00
parent e0b788501d
commit 7e1cb3d171
5 changed files with 58 additions and 18 deletions

View File

@@ -3,10 +3,17 @@
/* global wiki */
module.exports = {
Query(obj, args, context, info) {
return wiki.db.Group.findAll({ where: args })
Query: {
groups(obj, args, context, info) {
return wiki.db.Group.findAll({ where: args })
}
},
Type: {
Mutation: {
createGroup(obj, args) {
return wiki.db.Group.create(args)
}
},
Group: {
users(grp) {
return grp.getUsers()
}

View File

@@ -3,10 +3,17 @@
/* global wiki */
module.exports = {
Query(obj, args, context, info) {
return wiki.db.User.findAll({ where: args })
Query: {
users(obj, args, context, info) {
return wiki.db.User.findAll({ where: args })
}
},
Type: {
Mutation: {
createUser(obj, args) {
return wiki.db.User.create(args)
}
},
User: {
groups(usr) {
return usr.getGroups()
}

View File

@@ -102,6 +102,7 @@ type Setting implements Base {
config: String!
}
# Tags are attached to one or more documents
type Tag implements Base {
id: Int!
createdOn: Date
@@ -109,20 +110,20 @@ type Tag implements Base {
key: String!
}
# A User
type User implements Base {
id: Int!
createdOn: Date
updatedOn: Date
email: String!
provider: String
provider: String!
providerId: String
name: String
role: UserRole!
groups: [Group]
}
# QUERY
# Query (Read)
type Query {
comments(id: Int): [Comment]
documents(id: Int, path: String): [Document]
@@ -134,3 +135,31 @@ type Query {
tags(key: String): [Tag]
users(id: Int, email: String, provider: String, providerId: String, role: UserRole): [User]
}
# Mutations (Create, Update, Delete)
type Mutation {
assignUserToGroup(
userId: Int!
groupId: Int!
): Boolean
createGroup(
name: String!
): Group
createUser(
email: String!
name: String
provider: String!
providerId: String
role: UserRole!
): User
deleteGroup(
id: Int!
): Boolean
deleteUser(
id: Int!
): Boolean
removeUserFromGroup(
userId: Int!
groupId: Int!
): Boolean
}