From dc1fc409a54011c7f25db5b33eadf08ae2dbc362 Mon Sep 17 00:00:00 2001 From: ManifoldFR <wilson.jallet@gmail.com> Date: Fri, 2 Mar 2018 21:24:54 +0100 Subject: [PATCH] Added Query.post, Group.members queries user(uid: ID) now correctly returns a single user, updated in typeDef added IDs to Request types --- src/graphql/db_utils.js | 2 +- src/graphql/schema.js | 16 +++++++++++++--- src/graphql/typeDefs.js | 8 +++++++- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/graphql/db_utils.js b/src/graphql/db_utils.js index 79d8d10..42b17a6 100644 --- a/src/graphql/db_utils.js +++ b/src/graphql/db_utils.js @@ -6,7 +6,7 @@ import knex from '../../db/knex_router'; import { renseignerSurUtilisateur, repliquerTOLdesIds, listerGroupes, listerMembres, listerAdministrateurs } from '../ldap/ldap_data'; import { exportAllDeclaration } from 'babel-types'; -export { renseignerSurUtilisateur, repliquerTOLdesIds }; +export { renseignerSurUtilisateur, repliquerTOLdesIds, listerMembres }; /** * @summary Renvoie tous les utilisateurs ayant des droits d'administrateur sur un groupe. diff --git a/src/graphql/schema.js b/src/graphql/schema.js index a49d0fd..38acb0b 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -46,8 +46,7 @@ const resolvers = { }; const result = resolverFuncs.renseignerSurUtilisateur(context.user, args.uid).then(res => { - const output = res.map(entry => refactorer(entry)); - return output; + return refactorer(res[0]); }); return result; @@ -56,6 +55,10 @@ const resolvers = { allPosts: (obj, args, context) => { return knex.select().from('posts'); }, + post: (obj, args, context) => { + const result = knex.select().from('posts').where('id','=',args.id); + return result.then((res) => res[0]); + }, searchTOL: (obj, args, context) => { console.log(args); @@ -138,9 +141,16 @@ const resolvers = { Post: { authors: (obj, args, context) => { - console.log("Authors of post are:",obj.authors); return knex.select().from('groups').whereIn('uid',obj.authors); } + }, + + Group: { + members: (obj, args, context) => { + console.log("Current group is",obj.uid); + console.log("\tMembers of the group are:",obj); + return resolverFuncs.listerMembres(context.user,obj.uid); + } } }; diff --git a/src/graphql/typeDefs.js b/src/graphql/typeDefs.js index 5491e7b..0d2d88f 100644 --- a/src/graphql/typeDefs.js +++ b/src/graphql/typeDefs.js @@ -3,10 +3,11 @@ const RootTypes = ` type Query { allGroups: [Group] group(uid: ID) : Group - user(uid: ID) : [User] + user(uid: ID) : User allMessages: [Message] allEvents: [Event] allPosts: [Post] + post(id: ID): Post allAnnouncements: [Announcement] asAdmin(groupUID: ID): AdminQuery @@ -116,6 +117,8 @@ const Group = ` name: String # Site du groupe website: String + # Membres du groupe + members: [User] # Jour et heure de création du groupe createdAt: String! updatedAt: String! @@ -195,12 +198,14 @@ const Requests = ` # Demande d'un utilisateur désirant rejoindre le groupe. type userJoinGroup { + id: ID! # Émetteur de la demande user: User } # Demande d'un groupe voulant rejoindre un événement type groupJoinEvent { + id: ID! # Événement concerné event: Event # Groupe voulant rejoindre l'événement @@ -209,6 +214,7 @@ const Requests = ` # Demande au récipiendaire de rejoindre l'organisation d'un événement. type yourGroupHostEvent { + id: ID! event: Event sender: Group } -- GitLab