diff --git a/src/graphql/db_utils.js b/src/graphql/db_utils.js index 79d8d10252cc3d7e2bcef78845f7377f4fc6198c..42b17a64d6229422417c0b47f0833b5cb3ee5309 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 a49d0fdc2fcb3127ff06a69534294e92f0038f92..38acb0b17f7d7d4f51b04966d10a4feb2de994b0 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 5491e7bcd8987bc6428a509ff289deae215ec06f..0d2d88f86e84d93cbf1fd74033e5b946bb60ce41 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 }