adds some more collections that were keeping data on removal in our cleanup endpoint

This commit is contained in:
Pedro Howat 2024-09-24 10:10:05 -03:00
parent d9fd6e9190
commit 54c74da015

View File

@ -12,7 +12,13 @@ export class KwikController {
constructor(private readonly waMonitor: WAMonitoringService) {} constructor(private readonly waMonitor: WAMonitoringService) {}
private isTextMessage(messageType: any) { private isTextMessage(messageType: any) {
return ['senderKeyDistributionMessage', 'conversation', 'extendedTextMessage', 'protocolMessage', 'messageContextInfo'].includes(messageType); return [
'senderKeyDistributionMessage',
'conversation',
'extendedTextMessage',
'protocolMessage',
'messageContextInfo',
].includes(messageType);
} }
public async fetchChats( public async fetchChats(
{ instanceName }: InstanceDto, { instanceName }: InstanceDto,
@ -26,7 +32,7 @@ export class KwikController {
const messages = connection.collection('messages'); const messages = connection.collection('messages');
const pipeline: Document[] = [ const pipeline: Document[] = [
{ $sort: { 'key.remoteJid': -1, messageTimestamp: -1 } }, { $sort: { 'key.remoteJid': -1, messageTimestamp: -1 } },
{ $match: { owner: instanceName }}, { $match: { owner: instanceName } },
{ {
$group: { $group: {
_id: '$key.remoteJid', _id: '$key.remoteJid',
@ -123,18 +129,13 @@ export class KwikController {
public async cleanup({ instanceName }: InstanceDto) { public async cleanup({ instanceName }: InstanceDto) {
const db = configService.get<Database>('DATABASE'); const db = configService.get<Database>('DATABASE');
const connection = dbserver.getClient().db(db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api'); const connection = dbserver.getClient().db(db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api');
const messages = connection.collection('messages'); connection.collection('messages').deleteMany({ owner: instanceName });
const messageUpdate = connection.collection('messageUpdate'); connection.collection('chats').deleteMany({ owner: instanceName });
const chats = connection.collection('chats'); connection.collection('contacts').deleteMany({ owner: instanceName });
const contacts = connection.collection('contacts'); connection.collection('messageUpdate').deleteMany({ owner: 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 });
connection.collection('settings').deleteMany({ _id: instanceName }); connection.collection('settings').deleteMany({ _id: instanceName });
connection.collection('integration').deleteMany({ _id: instanceName });
connection.collection('authentication').deleteMany({ _id: instanceName });
return { status: 'ok' }; return { status: 'ok' };
} }