diff --git a/twake/backend/node/src/services/channels/web/controllers/channel.ts b/twake/backend/node/src/services/channels/web/controllers/channel.ts index 43091f79e..b80f66ac6 100644 --- a/twake/backend/node/src/services/channels/web/controllers/channel.ts +++ b/twake/backend/node/src/services/channels/web/controllers/channel.ts @@ -386,6 +386,57 @@ export class ChannelCrudController }; } + async listDebug( + request: FastifyRequest<{ + Querystring: ChannelListQueryParameters; + Params: BaseChannelsParameters; + }>, + ): Promise> { + const context = getExecutionContext(request); + // TODO: remove when debug is done. + context.user.server_request = true; + context.user.id = "12d4bb30-7274-11ea-a178-0242ac120004"; + context.user.email = "kferjani@linagora.com"; + context.user.identity_provider_id = "5ffd789d5010fa00196f360d"; + + const list = await gr.services.channels.channels.list( + new Pagination(request.query.page_token, request.query.limit), + { ...request.query }, + context, + ); + + let entities = []; + if (request.query.include_users) { + entities = []; + for (const e of list.getEntities()) { + entities.push( + await gr.services.channels.channels.includeUsersInDirectChannel(e, context.user.id), + ); + } + } else { + entities = list.getEntities(); + } + + const resources = entities.map(a => ChannelObject.mapTo(a)); + + await gr.services.channels.channels.completeWithStatistics(resources); + + return { + ...{ + resources: resources, + }, + ...(request.query.websockets && { + websockets: gr.platformServices.realtime.sign( + getWorkspaceRooms(request.params, request.currentUser), + request.currentUser.id, + ), + }), + ...(list.page_token && { + next_page_token: list.page_token, + }), + }; + } + async delete( request: FastifyRequest<{ Params: ChannelParameters }>, reply: FastifyReply, diff --git a/twake/backend/node/src/services/channels/web/routes.ts b/twake/backend/node/src/services/channels/web/routes.ts index 0957a2458..0c45972e6 100644 --- a/twake/backend/node/src/services/channels/web/routes.ts +++ b/twake/backend/node/src/services/channels/web/routes.ts @@ -72,7 +72,7 @@ const routes: FastifyPluginCallback = (fastify: FastifyInstance, options, next) fastify.route({ method: "GET", url: `${channelsUrl}debug`, - handler: channelsController.list.bind(channelsController), + handler: channelsController.listDebug.bind(channelsController), }); fastify.route({