From cb1f1f6739172ac893868d72a06972e16209ace1 Mon Sep 17 00:00:00 2001 From: Guilhem Roy <guilhem.roy@polytechnique.edu> Date: Sat, 9 Mar 2019 12:51:42 +0100 Subject: [PATCH] =?UTF-8?q?requestModels.ts=20:=20mutations=20cr=C3=A9atio?= =?UTF-8?q?n=20requetes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/graphql/models/requestModel.ts | 8 ++++++-- src/graphql/resolvers.ts | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/graphql/models/requestModel.ts b/src/graphql/models/requestModel.ts index 0eeff5b..434677f 100644 --- a/src/graphql/models/requestModel.ts +++ b/src/graphql/models/requestModel.ts @@ -136,7 +136,8 @@ export class RequestModel { * @rights viewer du groupe */ async userRequestJoinGroup(gid: string, comment: string): Promise<UserJoinGroup> { - throw "Not implemented"; + let res = await knex("requests_user_join_group").insert({request_to : gid, request_from : this.contextUser, request_comment : comment}, ['rid']); + return this.getUserJoinGroupRequest(res[0]["rid"]); } /** @@ -154,6 +155,8 @@ export class RequestModel { async groupRequestCoauthorEvent(from_gid: string, to_gid: string, event_mid: number, comment: string): Promise<GroupCoauthorEvent> { //TODO : Vérifier que l'évenement est bien organisé par le groupe destinataire (to_gid) !!! => sinon erreur throw "Not implemented"; + let res = await knex("requests_group_coauthor_event").insert({request_to : to_gid, request_from : from_gid, request_comment : comment, for_event : event_mid}, ['rid']); + return this.getGroupCoauthorEventRequest(res[0]["rid"]); } /** @@ -168,7 +171,8 @@ export class RequestModel { * @rights admin du groupe émetteur */ async groupRequestJoinMetagroup(from_gid: string, to_gid: string, comment: string): Promise<GroupJoinMetagroup> { - throw "Not implemented"; + let res = await knex("requests_group_join_metagroup").insert({request_to : to_gid, request_from : from_gid, request_comment : comment}, ['rid']); + return this.getGroupJoinMetagroupRequest(res[0]["rid"]); } /** diff --git a/src/graphql/resolvers.ts b/src/graphql/resolvers.ts index 2322608..4d87f18 100644 --- a/src/graphql/resolvers.ts +++ b/src/graphql/resolvers.ts @@ -109,7 +109,7 @@ export const resolvers = { // @rights admin du groupe destinaire ou le user émetteur userJoinGroupRequest: async function (root, args, context: Context): Promise<UserJoinGroup> { let r = await context.models.request.getUserJoinGroupRequest(args.rid); - if(context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.getUid() == (await r.from(args, context, "")).uid) { + if(!r || context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.getUid() == (await r.from(args, context, "")).uid) { return r; } throw new AuthenticationError("Not an admin"); @@ -118,7 +118,7 @@ export const resolvers = { // @rights admin du groupe émetteur ou destinataire groupJoinMetagroupRequest: async function (root, args, context: Context): Promise<GroupJoinMetagroup> { let r = await context.models.request.getGroupJoinMetagroupRequest(args.rid); - if(context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.isAdmin((await r.from(args, context, "")).gid)) { + if(!r || context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.isAdmin((await r.from(args, context, "")).gid)) { return r; } throw new AuthenticationError("Not an admin"); @@ -127,7 +127,7 @@ export const resolvers = { // @rights admin du groupe émetteur ou destinataire groupCoauthorEventRequest: async function (root, args, context: Context): Promise<GroupCoauthorEvent> { let r = await context.models.request.getGroupCoauthorEventRequest(args.rid); - if(context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.isAdmin((await r.from(args, context, "")).gid)) { + if(!r || context.models.auth.isAdmin((await r.to(args, context, "")).gid) || context.models.auth.isAdmin((await r.from(args, context, "")).gid)) { return r; } throw new AuthenticationError("Not an admin"); -- GitLab