From 0ed79d5cc932b5453eede69a3cf5fc632c9a04b5 Mon Sep 17 00:00:00 2001 From: Elia Azar <elia.azar@polytechnique.edu> Date: Sun, 3 Mar 2019 13:58:13 +0100 Subject: [PATCH] groups.ts -> getAllAnnouncements (args: *GroupSet*); two new functions : getAllAnnouncementsSent, getAllAnnouncementsReceived --- src/graphql/models/messageModel.ts | 48 ++++++++++++++++++++++++-- src/graphql/object_resolvers/groups.ts | 13 +++++-- 2 files changed, 56 insertions(+), 5 deletions(-) diff --git a/src/graphql/models/messageModel.ts b/src/graphql/models/messageModel.ts index cde6f59..59a55d3 100644 --- a/src/graphql/models/messageModel.ts +++ b/src/graphql/models/messageModel.ts @@ -105,12 +105,12 @@ export class MessageModel { * @memberof GraphQL.MessageModel# * @function getAllAnnouncements * @summary Fonction qui renvoie toutes les annonces visibles. - * @arg {GroupCollection} groups - Un ensemble d'identifiants, supposés valides. + * @arg {GroupSet} groups - Un ensemble d'identifiants, supposés valides. * @return {Promise(Announcement[])} Renvoie toutes les annonces émises ou reçues par ces groupes * @async * @rights member of groups */ - async getAllAnnouncements(groups: GroupCollection): Promise<Announcement[]> { + async getAllAnnouncements(groups: GroupSet): Promise<Announcement[]> { throw "Not implemented"; /*let result = await knex.select().from('announcements').whereIn('id', selection); @@ -123,6 +123,50 @@ export class MessageModel { return result;*/ } + /** + * @memberof GraphQL.MessageModel# + * @function getAllAnnouncementsSent + * @summary Fonction qui renvoie toutes les annonces émises visibles. + * @arg {GroupSet} groups - Un ensemble d'identifiants, supposés valides. + * @return {Promise(Announcement[])} Renvoie toutes les annonces émises par ces groupes + * @async + * @rights member of groups + */ + async getAllAnnouncementsSent(groups: GroupSet): Promise<Announcement[]> { + throw "Not implemented"; + + /*let result = await knex.select().from('announcements').whereIn('gid'); + result = result.concat( + await knex.select().from('events').whereIn('id') + ); + for (let r of result) { + r.type = 'Announcement'; + } + return result;*/ + } + + /** + * @memberof GraphQL.MessageModel# + * @function getAllAnnouncementsReceived + * @summary Fonction qui renvoie toutes les annonces reçues visibles. + * @arg {GroupSet} groups - Un ensemble d'identifiants, supposés valides. + * @return {Promise(Announcement[])} Renvoie toutes les annonces reçues par ces groupes + * @async + * @rights member of groups + */ + async getAllAnnouncementsReceived(groups: GroupSet): Promise<Announcement[]> { + throw "Not implemented"; + + /*let result = await knex.select().from('announcements').whereIn('gid'); + result = result.concat( + await knex.select().from('events').whereIn('id') + ); + for (let r of result) { + r.type = 'Announcement'; + } + return result;*/ + } + /** * @memberof GraphQL.MessageModel# * @function getAllEvents diff --git a/src/graphql/object_resolvers/groups.ts b/src/graphql/object_resolvers/groups.ts index 59e5511..f2a7d1c 100644 --- a/src/graphql/object_resolvers/groups.ts +++ b/src/graphql/object_resolvers/groups.ts @@ -10,6 +10,7 @@ import knex from '../../../db/knex_router'; import { Context } from '../typeDefs/queries'; import { ApolloError, AuthenticationError } from 'apollo-server-core'; import { Request, UserJoinGroup, GroupJoinMetagroup, GroupCoauthorEvent } from './requests'; +import { GroupSet } from '../models/tools'; export abstract class Group { @@ -232,7 +233,10 @@ export abstract class Group { */ async announcementsFromGroup(args, context: Context, info): Promise<Announcement[]> { if(context.models.auth.isMember(this.gid)) { - throw "Not implemented" + //03/03/19 + let res = new GroupSet(); + res.add(this.gid); + return context.models.message.getAllAnnouncementsSent(res); } throw new AuthenticationError("Not a member"); } @@ -246,8 +250,11 @@ export abstract class Group { * @async */ async announcementsToGroup(args, context: Context, info): Promise<Announcement[]> { - if (context.models.auth.isMember(this.gid)) { - throw "Not implemented" + if(context.models.auth.isMember(this.gid)) { + //03/03/19 + let res = new GroupSet(); + res.add(this.gid); + return context.models.message.getAllAnnouncementsReceived(res); } throw new AuthenticationError("Not a member"); } -- GitLab