From 58ef0cb3acc9a86c515838d4cb9c0374651ddc19 Mon Sep 17 00:00:00 2001 From: Pedro Howat Date: Tue, 27 Aug 2024 11:47:05 -0300 Subject: [PATCH] adds filtering of old messages in fetchChats endpoint --- .../integrations/kwik/controllers/kwik.controller.ts | 11 ++++++++--- src/api/integrations/kwik/routes/kwik.router.ts | 8 +++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/api/integrations/kwik/controllers/kwik.controller.ts b/src/api/integrations/kwik/controllers/kwik.controller.ts index d1e6624c..9328f3ac 100644 --- a/src/api/integrations/kwik/controllers/kwik.controller.ts +++ b/src/api/integrations/kwik/controllers/kwik.controller.ts @@ -14,7 +14,13 @@ export class KwikController { private isTextMessage(messageType: any) { return ['senderKeyDistributionMessage', 'conversation', 'extendedTextMessage'].includes(messageType); } - public async fetchChats({ instanceName }: InstanceDto, limit: number, skip: number, sort: any) { + public async fetchChats( + { instanceName }: InstanceDto, + limit: number, + skip: number, + sort: any, + messageTimestamp: number, + ) { const db = configService.get('DATABASE'); const connection = dbserver.getClient().db(db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api'); const messages = connection.collection('messages'); @@ -30,7 +36,7 @@ export class KwikController { fromMe: { $first: '$key.fromMe' }, }, }, - { $match: { owner: instanceName } }, + { $match: { owner: instanceName, lastAllMsgTimestamp: { $gte: messageTimestamp } } }, { $sort: { lastAllMsgTimestamp: -1 } }, ]; @@ -120,7 +126,6 @@ export class KwikController { const messageUpdate = connection.collection('messageUpdate'); const chats = connection.collection('chats'); const contacts = connection.collection('contacts'); - logger.error('DELETEME: Deleting messages for instance ' + instanceName); const x = messages.deleteMany({ owner: instanceName }); logger.error(x); const y = chats.deleteMany({ owner: instanceName }); diff --git a/src/api/integrations/kwik/routes/kwik.router.ts b/src/api/integrations/kwik/routes/kwik.router.ts index 6812a757..f57d3cc4 100644 --- a/src/api/integrations/kwik/routes/kwik.router.ts +++ b/src/api/integrations/kwik/routes/kwik.router.ts @@ -24,7 +24,13 @@ export class KwikRouter extends RouterBroker { schema: null, ClassRef: InstanceDto, execute: (instance) => - kwikController.fetchChats(instance, Number(req.query.limit), Number(req.query.skip), req.query.sort), + kwikController.fetchChats( + instance, + Number(req.query.limit), + Number(req.query.skip), + req.query.sort, + Number(req.query.messageTimestamp), + ), }); return res.status(HttpStatus.OK).json(response);