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