diff --git a/src/graphql/models/messageModel.ts b/src/graphql/models/messageModel.ts index cde6f59b54b3d6e671168675bd08614e338b0bc5..59a55d367bdf53f7483290598eaf4a01028d0a4e 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 59e5511a6780984987bdb7ef2a86a023eb6c452c..f2a7d1cb9354254a636e1da096202ca908f69542 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"); }