From cfea686d8eb4b42015fb0eee2bc1d124645e9b0c Mon Sep 17 00:00:00 2001 From: Pedro Howat Date: Mon, 26 Aug 2024 17:44:06 -0300 Subject: [PATCH] new cleanup entrypoint --- .../kwik/controllers/kwik.controller.ts | 18 ++++++++++++++++++ .../integrations/kwik/routes/kwik.router.ts | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/api/integrations/kwik/controllers/kwik.controller.ts b/src/api/integrations/kwik/controllers/kwik.controller.ts index 9177d0e5..57706c14 100644 --- a/src/api/integrations/kwik/controllers/kwik.controller.ts +++ b/src/api/integrations/kwik/controllers/kwik.controller.ts @@ -105,4 +105,22 @@ export class KwikController { return mm; } + public async cleanup({ instanceName }: InstanceDto) { + const db = configService.get('DATABASE'); + const connection = dbserver.getClient().db(db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api'); + const messages = connection.collection('messages'); + 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 }); + logger.error(y); + const z = contacts.deleteMany({ owner: instanceName }); + logger.error(z); + messageUpdate.deleteMany({ owner: instanceName }); + + return { status: 'ok' }; + } } diff --git a/src/api/integrations/kwik/routes/kwik.router.ts b/src/api/integrations/kwik/routes/kwik.router.ts index 9f27996c..6812a757 100644 --- a/src/api/integrations/kwik/routes/kwik.router.ts +++ b/src/api/integrations/kwik/routes/kwik.router.ts @@ -27,6 +27,23 @@ export class KwikRouter extends RouterBroker { kwikController.fetchChats(instance, Number(req.query.limit), Number(req.query.skip), req.query.sort), }); + return res.status(HttpStatus.OK).json(response); + }); + this.router.post(this.routerPath('cleanup'), ...guards, async (req, res) => { + logger.verbose('request received in findChats'); + logger.verbose('request body: '); + logger.verbose(req.body); + + logger.verbose('request query: '); + logger.verbose(req.query); + + const response = await this.dataValidate({ + request: req, + schema: null, + ClassRef: InstanceDto, + execute: (instance) => kwikController.cleanup(instance), + }); + return res.status(HttpStatus.OK).json(response); }); }