From acd7e6f805a4d55d0351dfdea8d785e1a3a40f76 Mon Sep 17 00:00:00 2001 From: Elia Azar <elia.azar@polytechnique.edu> Date: Sat, 16 Mar 2019 15:28:32 +0100 Subject: [PATCH] created and implemented simpleGroupsOfGroups in tool.ts to facilitate the implementation of other functions --- src/graphql/models/groupModel.ts | 5 ++++- src/graphql/models/tools.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/graphql/models/groupModel.ts b/src/graphql/models/groupModel.ts index 1a4e217..9785d3c 100644 --- a/src/graphql/models/groupModel.ts +++ b/src/graphql/models/groupModel.ts @@ -160,7 +160,10 @@ export class GroupModel { * @rights connectedOrOnplatal */ getAllSimpleGroupsFromMeta(gid: string): Promise<GroupSet> { - throw "Not implemented"; + let arg=new GroupSet(); + arg.add(gid); + let res=Tools.simpleGroupsOfGroups(arg); + return res; } /** diff --git a/src/graphql/models/tools.ts b/src/graphql/models/tools.ts index 26d0f8b..7a1895a 100644 --- a/src/graphql/models/tools.ts +++ b/src/graphql/models/tools.ts @@ -119,6 +119,21 @@ export class Tools { })); } + /** + * @memberof GraphQL + * @summary Fonction qui renvoit tous les simple-groupes dont ces groupes sont membres. + * @arg {GroupSet} groups - Un ensemble de gid des groupes a considérer. + * @return {Promise(GroupSet)} Renvoie un GroupSet contenant le nom des simple-groupes. + * @static + * @async + */ + static async simpleGroupsOfGroups(groups: GroupSet): Promise<GroupSet> { + let simples = await knex.select('simple_group_gid').from('metagroup_memberships').whereIn('meta_group_gid', [...groups]); + return new GroupSet(simples.map( elt => { + return elt.simple_group_gid; + })); + } + /** * @memberof GraphQL * @summary Fonction qui renvoit tous les groupes (simples ou méta) dont le user est membre. -- GitLab