mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-26 10:28:38 -06:00
Delete messages from ignored contacts from db and actually ignore them
when thsy arrive after the configuration is set.
This commit is contained in:
parent
5055f6a1ff
commit
c20486d6ea
@ -11,7 +11,7 @@ export class SettingsController {
|
||||
public async createSettings(instance: InstanceDto, data: SettingsDto) {
|
||||
logger.verbose('requested createSettings from ' + instance.instanceName + ' instance');
|
||||
|
||||
return this.settingsService.create(instance, data);
|
||||
return await this.settingsService.create(instance, data);
|
||||
}
|
||||
|
||||
public async findSettings(instance: InstanceDto) {
|
||||
|
@ -133,6 +133,7 @@ export class KwikController {
|
||||
const z = contacts.deleteMany({ owner: instanceName });
|
||||
logger.error(z);
|
||||
messageUpdate.deleteMany({ owner: instanceName });
|
||||
connection.collection('settings').deleteMany({ _id: instanceName });
|
||||
|
||||
return { status: 'ok' };
|
||||
}
|
||||
|
@ -1091,6 +1091,11 @@ export class BaileysStartupService extends ChannelStartupService {
|
||||
return;
|
||||
}
|
||||
|
||||
if (settings?.ignore_list && settings.ignore_list.includes(received.key.remoteJid)) {
|
||||
this.logger.verbose('contact in ignore list.');
|
||||
return;
|
||||
}
|
||||
|
||||
let messageRaw: MessageRaw;
|
||||
|
||||
const isMedia =
|
||||
|
@ -1,4 +1,6 @@
|
||||
import { configService, Database } from '../../config/env.config';
|
||||
import { Logger } from '../../config/logger.config';
|
||||
import { dbserver } from '../../libs/db.connect';
|
||||
import { InstanceDto } from '../dto/instance.dto';
|
||||
import { SettingsDto } from '../dto/settings.dto';
|
||||
import { WAMonitoringService } from './monitor.service';
|
||||
@ -8,10 +10,21 @@ export class SettingsService {
|
||||
|
||||
private readonly logger = new Logger(SettingsService.name);
|
||||
|
||||
public create(instance: InstanceDto, data: SettingsDto) {
|
||||
public async create(instance: InstanceDto, data: SettingsDto) {
|
||||
this.logger.verbose('create settings: ' + instance.instanceName);
|
||||
this.waMonitor.waInstances[instance.instanceName].setSettings(data);
|
||||
|
||||
if (data.ignore_list && data.ignore_list.length > 0) {
|
||||
// Cleanup old messages
|
||||
const db = configService.get<Database>('DATABASE');
|
||||
const connection = dbserver.getClient().db(db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api');
|
||||
const messages = connection.collection('messages');
|
||||
for (const contact of data.ignore_list) {
|
||||
this.logger.verbose('Cleaning up messages for ' + contact);
|
||||
await messages.deleteMany({ owner: instance.instanceName, 'key.remoteJid': contact });
|
||||
}
|
||||
}
|
||||
|
||||
return { settings: { ...instance, settings: data } };
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user