mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 01:41:24 -06:00
feat: Added verbose logs
This commit is contained in:
parent
a7be7c3e19
commit
437803da07
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
* Adjusted set in webhook to go empty when enabled false
|
* Adjusted set in webhook to go empty when enabled false
|
||||||
* Adjust in store files
|
* Adjust in store files
|
||||||
|
* Added verbose logs
|
||||||
|
|
||||||
# 1.1.3 (2023-07-06 11:43)
|
# 1.1.3 (2023-07-06 11:43)
|
||||||
|
|
||||||
|
@ -16,31 +16,40 @@ import { ContactQuery } from '../repository/contact.repository';
|
|||||||
import { MessageQuery } from '../repository/message.repository';
|
import { MessageQuery } from '../repository/message.repository';
|
||||||
import { MessageUpQuery } from '../repository/messageUp.repository';
|
import { MessageUpQuery } from '../repository/messageUp.repository';
|
||||||
import { WAMonitoringService } from '../services/monitor.service';
|
import { WAMonitoringService } from '../services/monitor.service';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('ChatController');
|
||||||
|
|
||||||
export class ChatController {
|
export class ChatController {
|
||||||
constructor(private readonly waMonitor: WAMonitoringService) {}
|
constructor(private readonly waMonitor: WAMonitoringService) {}
|
||||||
|
|
||||||
public async whatsappNumber({ instanceName }: InstanceDto, data: WhatsAppNumberDto) {
|
public async whatsappNumber({ instanceName }: InstanceDto, data: WhatsAppNumberDto) {
|
||||||
|
logger.verbose('requested whatsappNumber from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].whatsappNumber(data);
|
return await this.waMonitor.waInstances[instanceName].whatsappNumber(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async readMessage({ instanceName }: InstanceDto, data: ReadMessageDto) {
|
public async readMessage({ instanceName }: InstanceDto, data: ReadMessageDto) {
|
||||||
|
logger.verbose('requested readMessage from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].markMessageAsRead(data);
|
return await this.waMonitor.waInstances[instanceName].markMessageAsRead(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async archiveChat({ instanceName }: InstanceDto, data: ArchiveChatDto) {
|
public async archiveChat({ instanceName }: InstanceDto, data: ArchiveChatDto) {
|
||||||
|
logger.verbose('requested archiveChat from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].archiveChat(data);
|
return await this.waMonitor.waInstances[instanceName].archiveChat(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async deleteMessage({ instanceName }: InstanceDto, data: DeleteMessage) {
|
public async deleteMessage({ instanceName }: InstanceDto, data: DeleteMessage) {
|
||||||
|
logger.verbose('requested deleteMessage from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].deleteMessage(data);
|
return await this.waMonitor.waInstances[instanceName].deleteMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchProfilePicture({ instanceName }: InstanceDto, data: NumberDto) {
|
public async fetchProfilePicture({ instanceName }: InstanceDto, data: NumberDto) {
|
||||||
|
logger.verbose('requested fetchProfilePicture from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].profilePicture(data.number);
|
return await this.waMonitor.waInstances[instanceName].profilePicture(data.number);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchContacts({ instanceName }: InstanceDto, query: ContactQuery) {
|
public async fetchContacts({ instanceName }: InstanceDto, query: ContactQuery) {
|
||||||
|
logger.verbose('requested fetchContacts from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchContacts(query);
|
return await this.waMonitor.waInstances[instanceName].fetchContacts(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,22 +57,29 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: getBase64FromMediaMessageDto,
|
data: getBase64FromMediaMessageDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested getBase64FromMediaMessage from ' + instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instanceName].getBase64FromMediaMessage(data);
|
return await this.waMonitor.waInstances[instanceName].getBase64FromMediaMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchMessages({ instanceName }: InstanceDto, query: MessageQuery) {
|
public async fetchMessages({ instanceName }: InstanceDto, query: MessageQuery) {
|
||||||
|
logger.verbose('requested fetchMessages from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchMessages(query);
|
return await this.waMonitor.waInstances[instanceName].fetchMessages(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchStatusMessage({ instanceName }: InstanceDto, query: MessageUpQuery) {
|
public async fetchStatusMessage({ instanceName }: InstanceDto, query: MessageUpQuery) {
|
||||||
|
logger.verbose('requested fetchStatusMessage from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchStatusMessage(query);
|
return await this.waMonitor.waInstances[instanceName].fetchStatusMessage(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchChats({ instanceName }: InstanceDto) {
|
public async fetchChats({ instanceName }: InstanceDto) {
|
||||||
|
logger.verbose('requested fetchChats from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchChats();
|
return await this.waMonitor.waInstances[instanceName].fetchChats();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchPrivacySettings({ instanceName }: InstanceDto) {
|
public async fetchPrivacySettings({ instanceName }: InstanceDto) {
|
||||||
|
logger.verbose('requested fetchPrivacySettings from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings();
|
return await this.waMonitor.waInstances[instanceName].fetchPrivacySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,6 +87,7 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: PrivacySettingDto,
|
data: PrivacySettingDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose('requested updatePrivacySettings from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].updatePrivacySettings(data);
|
return await this.waMonitor.waInstances[instanceName].updatePrivacySettings(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,12 +95,14 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: ProfilePictureDto,
|
data: ProfilePictureDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose('requested fetchBusinessProfile from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].fetchBusinessProfile(
|
return await this.waMonitor.waInstances[instanceName].fetchBusinessProfile(
|
||||||
data.number,
|
data.number,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateProfileName({ instanceName }: InstanceDto, data: ProfileNameDto) {
|
public async updateProfileName({ instanceName }: InstanceDto, data: ProfileNameDto) {
|
||||||
|
logger.verbose('requested updateProfileName from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].updateProfileName(data.name);
|
return await this.waMonitor.waInstances[instanceName].updateProfileName(data.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +110,7 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: ProfileStatusDto,
|
data: ProfileStatusDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose('requested updateProfileStatus from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].updateProfileStatus(
|
return await this.waMonitor.waInstances[instanceName].updateProfileStatus(
|
||||||
data.status,
|
data.status,
|
||||||
);
|
);
|
||||||
@ -100,6 +120,7 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: ProfilePictureDto,
|
data: ProfilePictureDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose('requested updateProfilePicture from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].updateProfilePicture(
|
return await this.waMonitor.waInstances[instanceName].updateProfilePicture(
|
||||||
data.picture,
|
data.picture,
|
||||||
);
|
);
|
||||||
@ -109,6 +130,7 @@ export class ChatController {
|
|||||||
{ instanceName }: InstanceDto,
|
{ instanceName }: InstanceDto,
|
||||||
data: ProfilePictureDto,
|
data: ProfilePictureDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose('requested removeProfilePicture from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].removeProfilePicture();
|
return await this.waMonitor.waInstances[instanceName].removeProfilePicture();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,21 +12,31 @@ import {
|
|||||||
} from '../dto/group.dto';
|
} from '../dto/group.dto';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto } from '../dto/instance.dto';
|
||||||
import { WAMonitoringService } from '../services/monitor.service';
|
import { WAMonitoringService } from '../services/monitor.service';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('ChatController');
|
||||||
|
|
||||||
export class GroupController {
|
export class GroupController {
|
||||||
constructor(private readonly waMonitor: WAMonitoringService) {}
|
constructor(private readonly waMonitor: WAMonitoringService) {}
|
||||||
|
|
||||||
public async createGroup(instance: InstanceDto, create: CreateGroupDto) {
|
public async createGroup(instance: InstanceDto, create: CreateGroupDto) {
|
||||||
|
logger.verbose('requested createGroup from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].createGroup(create);
|
return await this.waMonitor.waInstances[instance.instanceName].createGroup(create);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateGroupPicture(instance: InstanceDto, update: GroupPictureDto) {
|
public async updateGroupPicture(instance: InstanceDto, update: GroupPictureDto) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested updateGroupPicture from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].updateGroupPicture(
|
return await this.waMonitor.waInstances[instance.instanceName].updateGroupPicture(
|
||||||
update,
|
update,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateGroupSubject(instance: InstanceDto, update: GroupSubjectDto) {
|
public async updateGroupSubject(instance: InstanceDto, update: GroupSubjectDto) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested updateGroupSubject from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].updateGroupSubject(
|
return await this.waMonitor.waInstances[instance.instanceName].updateGroupSubject(
|
||||||
update,
|
update,
|
||||||
);
|
);
|
||||||
@ -36,38 +46,54 @@ export class GroupController {
|
|||||||
instance: InstanceDto,
|
instance: InstanceDto,
|
||||||
update: GroupDescriptionDto,
|
update: GroupDescriptionDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested updateGroupDescription from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].updateGroupDescription(
|
return await this.waMonitor.waInstances[instance.instanceName].updateGroupDescription(
|
||||||
update,
|
update,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async findGroupInfo(instance: InstanceDto, groupJid: GroupJid) {
|
public async findGroupInfo(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
|
logger.verbose('requested findGroupInfo from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].findGroup(groupJid);
|
return await this.waMonitor.waInstances[instance.instanceName].findGroup(groupJid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchAllGroups(instance: InstanceDto) {
|
public async fetchAllGroups(instance: InstanceDto) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested fetchAllGroups from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].fetchAllGroups();
|
return await this.waMonitor.waInstances[instance.instanceName].fetchAllGroups();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async inviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
public async inviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
|
logger.verbose('requested inviteCode from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].inviteCode(groupJid);
|
return await this.waMonitor.waInstances[instance.instanceName].inviteCode(groupJid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async inviteInfo(instance: InstanceDto, inviteCode: GroupInvite) {
|
public async inviteInfo(instance: InstanceDto, inviteCode: GroupInvite) {
|
||||||
|
logger.verbose('requested inviteInfo from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].inviteInfo(inviteCode);
|
return await this.waMonitor.waInstances[instance.instanceName].inviteInfo(inviteCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendInvite(instance: InstanceDto, data: GroupSendInvite) {
|
public async sendInvite(instance: InstanceDto, data: GroupSendInvite) {
|
||||||
|
logger.verbose('requested sendInvite from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].sendInvite(data);
|
return await this.waMonitor.waInstances[instance.instanceName].sendInvite(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async revokeInviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
public async revokeInviteCode(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested revokeInviteCode from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].revokeInviteCode(
|
return await this.waMonitor.waInstances[instance.instanceName].revokeInviteCode(
|
||||||
groupJid,
|
groupJid,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async findParticipants(instance: InstanceDto, groupJid: GroupJid) {
|
public async findParticipants(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested findParticipants from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].findParticipants(
|
return await this.waMonitor.waInstances[instance.instanceName].findParticipants(
|
||||||
groupJid,
|
groupJid,
|
||||||
);
|
);
|
||||||
@ -77,22 +103,32 @@ export class GroupController {
|
|||||||
instance: InstanceDto,
|
instance: InstanceDto,
|
||||||
update: GroupUpdateParticipantDto,
|
update: GroupUpdateParticipantDto,
|
||||||
) {
|
) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested updateGParticipate from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].updateGParticipant(
|
return await this.waMonitor.waInstances[instance.instanceName].updateGParticipant(
|
||||||
update,
|
update,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateGSetting(instance: InstanceDto, update: GroupUpdateSettingDto) {
|
public async updateGSetting(instance: InstanceDto, update: GroupUpdateSettingDto) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested updateGSetting from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].updateGSetting(update);
|
return await this.waMonitor.waInstances[instance.instanceName].updateGSetting(update);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async toggleEphemeral(instance: InstanceDto, update: GroupToggleEphemeralDto) {
|
public async toggleEphemeral(instance: InstanceDto, update: GroupToggleEphemeralDto) {
|
||||||
|
logger.verbose(
|
||||||
|
'requested toggleEphemeral from ' + instance.instanceName + ' instance',
|
||||||
|
);
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].toggleEphemeral(
|
return await this.waMonitor.waInstances[instance.instanceName].toggleEphemeral(
|
||||||
update,
|
update,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async leaveGroup(instance: InstanceDto, groupJid: GroupJid) {
|
public async leaveGroup(instance: InstanceDto, groupJid: GroupJid) {
|
||||||
|
logger.verbose('requested leaveGroup from ' + instance.instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instance.instanceName].leaveGroup(groupJid);
|
return await this.waMonitor.waInstances[instance.instanceName].leaveGroup(groupJid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,9 +33,13 @@ export class InstanceController {
|
|||||||
qrcode,
|
qrcode,
|
||||||
token,
|
token,
|
||||||
}: InstanceDto) {
|
}: InstanceDto) {
|
||||||
|
this.logger.verbose('requested createInstance from ' + instanceName + ' instance');
|
||||||
|
|
||||||
const mode = this.configService.get<Auth>('AUTHENTICATION').INSTANCE.MODE;
|
const mode = this.configService.get<Auth>('AUTHENTICATION').INSTANCE.MODE;
|
||||||
|
|
||||||
if (mode === 'container') {
|
if (mode === 'container') {
|
||||||
|
this.logger.verbose('container mode');
|
||||||
|
|
||||||
if (Object.keys(this.waMonitor.waInstances).length > 0) {
|
if (Object.keys(this.waMonitor.waInstances).length > 0) {
|
||||||
throw new BadRequestException([
|
throw new BadRequestException([
|
||||||
'Instance already created',
|
'Instance already created',
|
||||||
@ -43,8 +47,10 @@ export class InstanceController {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.logger.verbose('checking duplicate token');
|
||||||
await this.authService.checkDuplicateToken(token);
|
await this.authService.checkDuplicateToken(token);
|
||||||
|
|
||||||
|
this.logger.verbose('creating instance');
|
||||||
const instance = new WAStartupService(
|
const instance = new WAStartupService(
|
||||||
this.configService,
|
this.configService,
|
||||||
this.eventEmitter,
|
this.eventEmitter,
|
||||||
@ -52,9 +58,12 @@ export class InstanceController {
|
|||||||
this.cache,
|
this.cache,
|
||||||
);
|
);
|
||||||
instance.instanceName = instanceName;
|
instance.instanceName = instanceName;
|
||||||
|
this.logger.verbose('instance: ' + instance.instanceName + ' created');
|
||||||
|
|
||||||
this.waMonitor.waInstances[instance.instanceName] = instance;
|
this.waMonitor.waInstances[instance.instanceName] = instance;
|
||||||
this.waMonitor.delInstanceTime(instance.instanceName);
|
this.waMonitor.delInstanceTime(instance.instanceName);
|
||||||
|
|
||||||
|
this.logger.verbose('generating hash');
|
||||||
const hash = await this.authService.generateHash(
|
const hash = await this.authService.generateHash(
|
||||||
{
|
{
|
||||||
instanceName: instance.instanceName,
|
instanceName: instance.instanceName,
|
||||||
@ -62,9 +71,12 @@ export class InstanceController {
|
|||||||
token,
|
token,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.logger.verbose('hash: ' + hash + ' generated');
|
||||||
|
|
||||||
let getEvents: string[];
|
let getEvents: string[];
|
||||||
|
|
||||||
if (webhook) {
|
if (webhook) {
|
||||||
|
this.logger.verbose('creating webhook');
|
||||||
try {
|
try {
|
||||||
this.webhookService.create(instance, {
|
this.webhookService.create(instance, {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
@ -79,6 +91,17 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.logger.verbose('instance created');
|
||||||
|
this.logger.verbose({
|
||||||
|
instance: {
|
||||||
|
instanceName: instance.instanceName,
|
||||||
|
status: 'created',
|
||||||
|
},
|
||||||
|
hash,
|
||||||
|
webhook,
|
||||||
|
events: getEvents,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
instance: {
|
instance: {
|
||||||
instanceName: instance.instanceName,
|
instanceName: instance.instanceName,
|
||||||
@ -89,8 +112,12 @@ export class InstanceController {
|
|||||||
events: getEvents,
|
events: getEvents,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
this.logger.verbose('server mode');
|
||||||
|
|
||||||
|
this.logger.verbose('checking duplicate token');
|
||||||
await this.authService.checkDuplicateToken(token);
|
await this.authService.checkDuplicateToken(token);
|
||||||
|
|
||||||
|
this.logger.verbose('creating instance');
|
||||||
const instance = new WAStartupService(
|
const instance = new WAStartupService(
|
||||||
this.configService,
|
this.configService,
|
||||||
this.eventEmitter,
|
this.eventEmitter,
|
||||||
@ -98,9 +125,13 @@ export class InstanceController {
|
|||||||
this.cache,
|
this.cache,
|
||||||
);
|
);
|
||||||
instance.instanceName = instanceName;
|
instance.instanceName = instanceName;
|
||||||
|
|
||||||
|
this.logger.verbose('instance: ' + instance.instanceName + ' created');
|
||||||
|
|
||||||
this.waMonitor.waInstances[instance.instanceName] = instance;
|
this.waMonitor.waInstances[instance.instanceName] = instance;
|
||||||
this.waMonitor.delInstanceTime(instance.instanceName);
|
this.waMonitor.delInstanceTime(instance.instanceName);
|
||||||
|
|
||||||
|
this.logger.verbose('generating hash');
|
||||||
const hash = await this.authService.generateHash(
|
const hash = await this.authService.generateHash(
|
||||||
{
|
{
|
||||||
instanceName: instance.instanceName,
|
instanceName: instance.instanceName,
|
||||||
@ -108,9 +139,12 @@ export class InstanceController {
|
|||||||
token,
|
token,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.logger.verbose('hash: ' + hash + ' generated');
|
||||||
|
|
||||||
let getEvents: string[];
|
let getEvents: string[];
|
||||||
|
|
||||||
if (webhook) {
|
if (webhook) {
|
||||||
|
this.logger.verbose('creating webhook');
|
||||||
try {
|
try {
|
||||||
this.webhookService.create(instance, {
|
this.webhookService.create(instance, {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
@ -128,11 +162,25 @@ export class InstanceController {
|
|||||||
let getQrcode: wa.QrCode;
|
let getQrcode: wa.QrCode;
|
||||||
|
|
||||||
if (qrcode) {
|
if (qrcode) {
|
||||||
|
this.logger.verbose('creating qrcode');
|
||||||
await instance.connectToWhatsapp();
|
await instance.connectToWhatsapp();
|
||||||
await delay(2000);
|
await delay(2000);
|
||||||
getQrcode = instance.qrCode;
|
getQrcode = instance.qrCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.logger.verbose('instance created');
|
||||||
|
this.logger.verbose({
|
||||||
|
instance: {
|
||||||
|
instanceName: instance.instanceName,
|
||||||
|
status: 'created',
|
||||||
|
},
|
||||||
|
hash,
|
||||||
|
webhook,
|
||||||
|
webhook_by_events,
|
||||||
|
events: getEvents,
|
||||||
|
qrcode: getQrcode,
|
||||||
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
instance: {
|
instance: {
|
||||||
instanceName: instance.instanceName,
|
instanceName: instance.instanceName,
|
||||||
@ -149,11 +197,18 @@ export class InstanceController {
|
|||||||
|
|
||||||
public async connectToWhatsapp({ instanceName }: InstanceDto) {
|
public async connectToWhatsapp({ instanceName }: InstanceDto) {
|
||||||
try {
|
try {
|
||||||
|
this.logger.verbose(
|
||||||
|
'requested connectToWhatsapp from ' + instanceName + ' instance',
|
||||||
|
);
|
||||||
|
|
||||||
const instance = this.waMonitor.waInstances[instanceName];
|
const instance = this.waMonitor.waInstances[instanceName];
|
||||||
const state = instance?.connectionStatus?.state;
|
const state = instance?.connectionStatus?.state;
|
||||||
|
|
||||||
|
this.logger.verbose('state: ' + state);
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case 'close':
|
case 'close':
|
||||||
|
this.logger.verbose('connecting');
|
||||||
await instance.connectToWhatsapp();
|
await instance.connectToWhatsapp();
|
||||||
await delay(2000);
|
await delay(2000);
|
||||||
return instance.qrCode;
|
return instance.qrCode;
|
||||||
@ -169,8 +224,12 @@ export class InstanceController {
|
|||||||
|
|
||||||
public async restartInstance({ instanceName }: InstanceDto) {
|
public async restartInstance({ instanceName }: InstanceDto) {
|
||||||
try {
|
try {
|
||||||
|
this.logger.verbose('requested restartInstance from ' + instanceName + ' instance');
|
||||||
|
|
||||||
|
this.logger.verbose('deleting instance: ' + instanceName);
|
||||||
delete this.waMonitor.waInstances[instanceName];
|
delete this.waMonitor.waInstances[instanceName];
|
||||||
console.log(this.waMonitor.waInstances[instanceName]);
|
|
||||||
|
this.logger.verbose('creating instance: ' + instanceName);
|
||||||
const instance = new WAStartupService(
|
const instance = new WAStartupService(
|
||||||
this.configService,
|
this.configService,
|
||||||
this.eventEmitter,
|
this.eventEmitter,
|
||||||
@ -179,6 +238,10 @@ export class InstanceController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
instance.instanceName = instanceName;
|
instance.instanceName = instanceName;
|
||||||
|
|
||||||
|
this.logger.verbose('instance: ' + instance.instanceName + ' created');
|
||||||
|
|
||||||
|
this.logger.verbose('connecting instance: ' + instanceName);
|
||||||
await instance.connectToWhatsapp();
|
await instance.connectToWhatsapp();
|
||||||
this.waMonitor.waInstances[instance.instanceName] = instance;
|
this.waMonitor.waInstances[instance.instanceName] = instance;
|
||||||
|
|
||||||
@ -189,11 +252,14 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async connectionState({ instanceName }: InstanceDto) {
|
public async connectionState({ instanceName }: InstanceDto) {
|
||||||
|
this.logger.verbose('requested connectionState from ' + instanceName + ' instance');
|
||||||
return this.waMonitor.waInstances[instanceName]?.connectionStatus;
|
return this.waMonitor.waInstances[instanceName]?.connectionStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async fetchInstances({ instanceName }: InstanceDto) {
|
public async fetchInstances({ instanceName }: InstanceDto) {
|
||||||
|
this.logger.verbose('requested fetchInstances from ' + instanceName + ' instance');
|
||||||
if (instanceName) {
|
if (instanceName) {
|
||||||
|
this.logger.verbose('instanceName: ' + instanceName);
|
||||||
return this.waMonitor.instanceInfo(instanceName);
|
return this.waMonitor.instanceInfo(instanceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,11 +267,14 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async logout({ instanceName }: InstanceDto) {
|
public async logout({ instanceName }: InstanceDto) {
|
||||||
|
this.logger.verbose('requested logout from ' + instanceName + ' instance');
|
||||||
try {
|
try {
|
||||||
|
this.logger.verbose('logging out instance: ' + instanceName);
|
||||||
await this.waMonitor.waInstances[instanceName]?.client?.logout(
|
await this.waMonitor.waInstances[instanceName]?.client?.logout(
|
||||||
'Log out instance: ' + instanceName,
|
'Log out instance: ' + instanceName,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.logger.verbose('close connection instance: ' + instanceName);
|
||||||
this.waMonitor.waInstances[instanceName]?.client?.ws?.close();
|
this.waMonitor.waInstances[instanceName]?.client?.ws?.close();
|
||||||
|
|
||||||
return { error: false, message: 'Instance logged out' };
|
return { error: false, message: 'Instance logged out' };
|
||||||
@ -215,7 +284,9 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async deleteInstance({ instanceName }: InstanceDto) {
|
public async deleteInstance({ instanceName }: InstanceDto) {
|
||||||
|
this.logger.verbose('requested deleteInstance from ' + instanceName + ' instance');
|
||||||
const stateConn = await this.connectionState({ instanceName });
|
const stateConn = await this.connectionState({ instanceName });
|
||||||
|
|
||||||
if (stateConn.state === 'open') {
|
if (stateConn.state === 'open') {
|
||||||
throw new BadRequestException([
|
throw new BadRequestException([
|
||||||
'Deletion failed',
|
'Deletion failed',
|
||||||
@ -224,10 +295,14 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if (stateConn.state === 'connecting') {
|
if (stateConn.state === 'connecting') {
|
||||||
|
this.logger.verbose('logging out instance: ' + instanceName);
|
||||||
|
|
||||||
await this.logout({ instanceName });
|
await this.logout({ instanceName });
|
||||||
delete this.waMonitor.waInstances[instanceName];
|
delete this.waMonitor.waInstances[instanceName];
|
||||||
return { error: false, message: 'Instance deleted' };
|
return { error: false, message: 'Instance deleted' };
|
||||||
} else {
|
} else {
|
||||||
|
this.logger.verbose('deleting instance: ' + instanceName);
|
||||||
|
|
||||||
delete this.waMonitor.waInstances[instanceName];
|
delete this.waMonitor.waInstances[instanceName];
|
||||||
this.eventEmitter.emit('remove.instance', instanceName, 'inner');
|
this.eventEmitter.emit('remove.instance', instanceName, 'inner');
|
||||||
return { error: false, message: 'Instance deleted' };
|
return { error: false, message: 'Instance deleted' };
|
||||||
@ -238,6 +313,7 @@ export class InstanceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async refreshToken(_: InstanceDto, oldToken: OldToken) {
|
public async refreshToken(_: InstanceDto, oldToken: OldToken) {
|
||||||
|
this.logger.verbose('requested refreshToken');
|
||||||
return await this.authService.refreshToken(oldToken);
|
return await this.authService.refreshToken(oldToken);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,17 +17,29 @@ import {
|
|||||||
} from '../dto/sendMessage.dto';
|
} from '../dto/sendMessage.dto';
|
||||||
import { WAMonitoringService } from '../services/monitor.service';
|
import { WAMonitoringService } from '../services/monitor.service';
|
||||||
|
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('MessageRouter');
|
||||||
|
|
||||||
export class SendMessageController {
|
export class SendMessageController {
|
||||||
constructor(private readonly waMonitor: WAMonitoringService) {}
|
constructor(private readonly waMonitor: WAMonitoringService) {}
|
||||||
|
|
||||||
public async sendText({ instanceName }: InstanceDto, data: SendTextDto) {
|
public async sendText({ instanceName }: InstanceDto, data: SendTextDto) {
|
||||||
|
logger.verbose('requested sendText from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].textMessage(data);
|
return await this.waMonitor.waInstances[instanceName].textMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendMedia({ instanceName }: InstanceDto, data: SendMediaDto) {
|
public async sendMedia({ instanceName }: InstanceDto, data: SendMediaDto) {
|
||||||
|
logger.verbose('requested sendMedia from ' + instanceName + ' instance');
|
||||||
if (isBase64(data?.mediaMessage?.media) && !data?.mediaMessage?.fileName) {
|
if (isBase64(data?.mediaMessage?.media) && !data?.mediaMessage?.fileName) {
|
||||||
throw new BadRequestException('For bse64 the file name must be informed.');
|
throw new BadRequestException('For bse64 the file name must be informed.');
|
||||||
}
|
}
|
||||||
|
logger.verbose(
|
||||||
|
'isURL: ' +
|
||||||
|
isURL(data?.mediaMessage?.media) +
|
||||||
|
', isBase64: ' +
|
||||||
|
isBase64(data?.mediaMessage?.media),
|
||||||
|
);
|
||||||
if (isURL(data?.mediaMessage?.media) || isBase64(data?.mediaMessage?.media)) {
|
if (isURL(data?.mediaMessage?.media) || isBase64(data?.mediaMessage?.media)) {
|
||||||
return await this.waMonitor.waInstances[instanceName].mediaMessage(data);
|
return await this.waMonitor.waInstances[instanceName].mediaMessage(data);
|
||||||
}
|
}
|
||||||
@ -35,6 +47,14 @@ export class SendMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async sendSticker({ instanceName }: InstanceDto, data: SendStickerDto) {
|
public async sendSticker({ instanceName }: InstanceDto, data: SendStickerDto) {
|
||||||
|
logger.verbose('requested sendSticker from ' + instanceName + ' instance');
|
||||||
|
|
||||||
|
logger.verbose(
|
||||||
|
'isURL: ' +
|
||||||
|
isURL(data?.stickerMessage?.image) +
|
||||||
|
', isBase64: ' +
|
||||||
|
isBase64(data?.stickerMessage?.image),
|
||||||
|
);
|
||||||
if (isURL(data.stickerMessage.image) || isBase64(data.stickerMessage.image)) {
|
if (isURL(data.stickerMessage.image) || isBase64(data.stickerMessage.image)) {
|
||||||
return await this.waMonitor.waInstances[instanceName].mediaSticker(data);
|
return await this.waMonitor.waInstances[instanceName].mediaSticker(data);
|
||||||
}
|
}
|
||||||
@ -42,6 +62,14 @@ export class SendMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async sendWhatsAppAudio({ instanceName }: InstanceDto, data: SendAudioDto) {
|
public async sendWhatsAppAudio({ instanceName }: InstanceDto, data: SendAudioDto) {
|
||||||
|
logger.verbose('requested sendWhatsAppAudio from ' + instanceName + ' instance');
|
||||||
|
|
||||||
|
logger.verbose(
|
||||||
|
'isURL: ' +
|
||||||
|
isURL(data?.audioMessage?.audio) +
|
||||||
|
', isBase64: ' +
|
||||||
|
isBase64(data?.audioMessage?.audio),
|
||||||
|
);
|
||||||
if (isURL(data.audioMessage.audio) || isBase64(data.audioMessage.audio)) {
|
if (isURL(data.audioMessage.audio) || isBase64(data.audioMessage.audio)) {
|
||||||
return await this.waMonitor.waInstances[instanceName].audioWhatsapp(data);
|
return await this.waMonitor.waInstances[instanceName].audioWhatsapp(data);
|
||||||
}
|
}
|
||||||
@ -49,6 +77,7 @@ export class SendMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async sendButtons({ instanceName }: InstanceDto, data: SendButtonDto) {
|
public async sendButtons({ instanceName }: InstanceDto, data: SendButtonDto) {
|
||||||
|
logger.verbose('requested sendButtons from ' + instanceName + ' instance');
|
||||||
if (
|
if (
|
||||||
isBase64(data.buttonMessage.mediaMessage?.media) &&
|
isBase64(data.buttonMessage.mediaMessage?.media) &&
|
||||||
!data.buttonMessage.mediaMessage?.fileName
|
!data.buttonMessage.mediaMessage?.fileName
|
||||||
@ -59,18 +88,22 @@ export class SendMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async sendLocation({ instanceName }: InstanceDto, data: SendLocationDto) {
|
public async sendLocation({ instanceName }: InstanceDto, data: SendLocationDto) {
|
||||||
|
logger.verbose('requested sendLocation from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].locationMessage(data);
|
return await this.waMonitor.waInstances[instanceName].locationMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendList({ instanceName }: InstanceDto, data: SendListDto) {
|
public async sendList({ instanceName }: InstanceDto, data: SendListDto) {
|
||||||
|
logger.verbose('requested sendList from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].listMessage(data);
|
return await this.waMonitor.waInstances[instanceName].listMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendContact({ instanceName }: InstanceDto, data: SendContactDto) {
|
public async sendContact({ instanceName }: InstanceDto, data: SendContactDto) {
|
||||||
|
logger.verbose('requested sendContact from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].contactMessage(data);
|
return await this.waMonitor.waInstances[instanceName].contactMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendReaction({ instanceName }: InstanceDto, data: SendReactionDto) {
|
public async sendReaction({ instanceName }: InstanceDto, data: SendReactionDto) {
|
||||||
|
logger.verbose('requested sendReaction from ' + instanceName + ' instance');
|
||||||
if (!data.reactionMessage.reaction.match(/[^\(\)\w\sà-ú"-\+]+/)) {
|
if (!data.reactionMessage.reaction.match(/[^\(\)\w\sà-ú"-\+]+/)) {
|
||||||
throw new BadRequestException('"reaction" must be an emoji');
|
throw new BadRequestException('"reaction" must be an emoji');
|
||||||
}
|
}
|
||||||
@ -78,14 +111,17 @@ export class SendMessageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async sendPoll({ instanceName }: InstanceDto, data: SendPollDto) {
|
public async sendPoll({ instanceName }: InstanceDto, data: SendPollDto) {
|
||||||
|
logger.verbose('requested sendPoll from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].pollMessage(data);
|
return await this.waMonitor.waInstances[instanceName].pollMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendStatus({ instanceName }: InstanceDto, data: SendStatusDto) {
|
public async sendStatus({ instanceName }: InstanceDto, data: SendStatusDto) {
|
||||||
|
logger.verbose('requested sendStatus from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].statusMessage(data);
|
return await this.waMonitor.waInstances[instanceName].statusMessage(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendLinkPreview({ instanceName }: InstanceDto, data: SendLinkPreviewDto) {
|
public async sendLinkPreview({ instanceName }: InstanceDto, data: SendLinkPreviewDto) {
|
||||||
|
logger.verbose('requested sendLinkPreview from ' + instanceName + ' instance');
|
||||||
return await this.waMonitor.waInstances[instanceName].linkPreview(data);
|
return await this.waMonitor.waInstances[instanceName].linkPreview(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,16 +3,22 @@ import { BadRequestException } from '../../exceptions';
|
|||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto } from '../dto/instance.dto';
|
||||||
import { WebhookDto } from '../dto/webhook.dto';
|
import { WebhookDto } from '../dto/webhook.dto';
|
||||||
import { WebhookService } from '../services/webhook.service';
|
import { WebhookService } from '../services/webhook.service';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('WebhookController');
|
||||||
|
|
||||||
export class WebhookController {
|
export class WebhookController {
|
||||||
constructor(private readonly webhookService: WebhookService) {}
|
constructor(private readonly webhookService: WebhookService) {}
|
||||||
|
|
||||||
public async createWebhook(instance: InstanceDto, data: WebhookDto) {
|
public async createWebhook(instance: InstanceDto, data: WebhookDto) {
|
||||||
|
logger.verbose('requested createWebhook from ' + instance.instanceName + ' instance');
|
||||||
|
|
||||||
if (data.enabled && !isURL(data.url, { require_tld: false })) {
|
if (data.enabled && !isURL(data.url, { require_tld: false })) {
|
||||||
throw new BadRequestException('Invalid "url" property');
|
throw new BadRequestException('Invalid "url" property');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data.enabled) {
|
if (!data.enabled) {
|
||||||
|
logger.verbose('webhook disabled');
|
||||||
data.url = '';
|
data.url = '';
|
||||||
data.events = [];
|
data.events = [];
|
||||||
}
|
}
|
||||||
@ -21,6 +27,7 @@ export class WebhookController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async findWebhook(instance: InstanceDto) {
|
public async findWebhook(instance: InstanceDto) {
|
||||||
|
logger.verbose('requested findWebhook from ' + instance.instanceName + ' instance');
|
||||||
return this.webhookService.find(instance);
|
return this.webhookService.find(instance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,12 +32,22 @@ import { HttpStatus } from './index.router';
|
|||||||
import { MessageUpQuery } from '../repository/messageUp.repository';
|
import { MessageUpQuery } from '../repository/messageUp.repository';
|
||||||
import { proto } from '@whiskeysockets/baileys';
|
import { proto } from '@whiskeysockets/baileys';
|
||||||
import { InstanceDto } from '../dto/instance.dto';
|
import { InstanceDto } from '../dto/instance.dto';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('ChatRouter');
|
||||||
|
|
||||||
export class ChatRouter extends RouterBroker {
|
export class ChatRouter extends RouterBroker {
|
||||||
constructor(...guards: RequestHandler[]) {
|
constructor(...guards: RequestHandler[]) {
|
||||||
super();
|
super();
|
||||||
this.router
|
this.router
|
||||||
.post(this.routerPath('whatsappNumbers'), ...guards, async (req, res) => {
|
.post(this.routerPath('whatsappNumbers'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in whatsappNumbers');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<WhatsAppNumberDto>({
|
const response = await this.dataValidate<WhatsAppNumberDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: whatsappNumberSchema,
|
schema: whatsappNumberSchema,
|
||||||
@ -48,6 +58,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('markMessageAsRead'), ...guards, async (req, res) => {
|
.put(this.routerPath('markMessageAsRead'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in markMessageAsRead');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ReadMessageDto>({
|
const response = await this.dataValidate<ReadMessageDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: readMessageSchema,
|
schema: readMessageSchema,
|
||||||
@ -58,6 +75,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('archiveChat'), ...guards, async (req, res) => {
|
.put(this.routerPath('archiveChat'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in archiveChat');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ArchiveChatDto>({
|
const response = await this.dataValidate<ArchiveChatDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: archiveChatSchema,
|
schema: archiveChatSchema,
|
||||||
@ -71,6 +95,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
this.routerPath('deleteMessageForEveryone'),
|
this.routerPath('deleteMessageForEveryone'),
|
||||||
...guards,
|
...guards,
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
|
logger.verbose('request received in deleteMessageForEveryone');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<DeleteMessage>({
|
const response = await this.dataValidate<DeleteMessage>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: deleteMessageSchema,
|
schema: deleteMessageSchema,
|
||||||
@ -82,6 +113,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
.post(this.routerPath('fetchProfilePictureUrl'), ...guards, async (req, res) => {
|
.post(this.routerPath('fetchProfilePictureUrl'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in fetchProfilePictureUrl');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<NumberDto>({
|
const response = await this.dataValidate<NumberDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profilePictureSchema,
|
schema: profilePictureSchema,
|
||||||
@ -92,6 +130,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('findContacts'), ...guards, async (req, res) => {
|
.post(this.routerPath('findContacts'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in findContacts');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ContactQuery>({
|
const response = await this.dataValidate<ContactQuery>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: contactValidateSchema,
|
schema: contactValidateSchema,
|
||||||
@ -102,6 +147,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('getBase64FromMediaMessage'), ...guards, async (req, res) => {
|
.post(this.routerPath('getBase64FromMediaMessage'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in getBase64FromMediaMessage');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<getBase64FromMediaMessageDto>({
|
const response = await this.dataValidate<getBase64FromMediaMessageDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: null,
|
schema: null,
|
||||||
@ -113,6 +165,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('findMessages'), ...guards, async (req, res) => {
|
.post(this.routerPath('findMessages'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in findMessages');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<MessageQuery>({
|
const response = await this.dataValidate<MessageQuery>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: messageValidateSchema,
|
schema: messageValidateSchema,
|
||||||
@ -123,6 +182,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('findStatusMessage'), ...guards, async (req, res) => {
|
.post(this.routerPath('findStatusMessage'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in findStatusMessage');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<MessageUpQuery>({
|
const response = await this.dataValidate<MessageUpQuery>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: messageUpSchema,
|
schema: messageUpSchema,
|
||||||
@ -133,6 +199,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('findChats'), ...guards, async (req, res) => {
|
.get(this.routerPath('findChats'), ...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<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: null,
|
schema: null,
|
||||||
@ -144,6 +217,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
})
|
})
|
||||||
// Profile routes
|
// Profile routes
|
||||||
.get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => {
|
.get(this.routerPath('fetchPrivacySettings'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in fetchPrivacySettings');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: null,
|
schema: null,
|
||||||
@ -154,6 +234,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updatePrivacySettings'), ...guards, async (req, res) => {
|
.put(this.routerPath('updatePrivacySettings'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updatePrivacySettings');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<PrivacySettingDto>({
|
const response = await this.dataValidate<PrivacySettingDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: privacySettingsSchema,
|
schema: privacySettingsSchema,
|
||||||
@ -165,6 +252,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('fetchBusinessProfile'), ...guards, async (req, res) => {
|
.post(this.routerPath('fetchBusinessProfile'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in fetchBusinessProfile');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ProfilePictureDto>({
|
const response = await this.dataValidate<ProfilePictureDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profilePictureSchema,
|
schema: profilePictureSchema,
|
||||||
@ -176,6 +270,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('updateProfileName'), ...guards, async (req, res) => {
|
.post(this.routerPath('updateProfileName'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateProfileName');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ProfileNameDto>({
|
const response = await this.dataValidate<ProfileNameDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profileNameSchema,
|
schema: profileNameSchema,
|
||||||
@ -186,6 +287,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('updateProfileStatus'), ...guards, async (req, res) => {
|
.post(this.routerPath('updateProfileStatus'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateProfileStatus');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ProfileStatusDto>({
|
const response = await this.dataValidate<ProfileStatusDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profileStatusSchema,
|
schema: profileStatusSchema,
|
||||||
@ -196,6 +304,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateProfilePicture'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateProfilePicture'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateProfilePicture');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ProfilePictureDto>({
|
const response = await this.dataValidate<ProfilePictureDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profilePictureSchema,
|
schema: profilePictureSchema,
|
||||||
@ -207,6 +322,13 @@ export class ChatRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.delete(this.routerPath('removeProfilePicture'), ...guards, async (req, res) => {
|
.delete(this.routerPath('removeProfilePicture'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in removeProfilePicture');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.dataValidate<ProfilePictureDto>({
|
const response = await this.dataValidate<ProfilePictureDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: profilePictureSchema,
|
schema: profilePictureSchema,
|
||||||
|
@ -26,12 +26,21 @@ import {
|
|||||||
} from '../dto/group.dto';
|
} from '../dto/group.dto';
|
||||||
import { groupController } from '../whatsapp.module';
|
import { groupController } from '../whatsapp.module';
|
||||||
import { HttpStatus } from './index.router';
|
import { HttpStatus } from './index.router';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('GroupRouter');
|
||||||
|
|
||||||
export class GroupRouter extends RouterBroker {
|
export class GroupRouter extends RouterBroker {
|
||||||
constructor(...guards: RequestHandler[]) {
|
constructor(...guards: RequestHandler[]) {
|
||||||
super();
|
super();
|
||||||
this.router
|
this.router
|
||||||
.post(this.routerPath('create'), ...guards, async (req, res) => {
|
.post(this.routerPath('create'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in createGroup');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<CreateGroupDto>({
|
const response = await this.dataValidate<CreateGroupDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: createGroupSchema,
|
schema: createGroupSchema,
|
||||||
@ -42,6 +51,13 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateGroupSubject'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateGroupSubject'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateGroupSubject');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
|
|
||||||
const response = await this.groupValidate<GroupSubjectDto>({
|
const response = await this.groupValidate<GroupSubjectDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: updateGroupSubjectSchema,
|
schema: updateGroupSubjectSchema,
|
||||||
@ -52,6 +68,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateGroupPicture'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateGroupPicture'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateGroupPicture');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupPictureDto>({
|
const response = await this.groupValidate<GroupPictureDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: updateGroupPictureSchema,
|
schema: updateGroupPictureSchema,
|
||||||
@ -62,6 +84,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateGroupDescription'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateGroupDescription'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateGroupDescription');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupDescriptionDto>({
|
const response = await this.groupValidate<GroupDescriptionDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: updateGroupDescriptionSchema,
|
schema: updateGroupDescriptionSchema,
|
||||||
@ -73,6 +101,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('findGroupInfos'), ...guards, async (req, res) => {
|
.get(this.routerPath('findGroupInfos'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in findGroupInfos');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupJid>({
|
const response = await this.groupValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupJidSchema,
|
schema: groupJidSchema,
|
||||||
@ -83,6 +117,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('fetchAllGroups'), ...guards, async (req, res) => {
|
.get(this.routerPath('fetchAllGroups'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in fetchAllGroups');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupNoValidate<GroupJid>({
|
const response = await this.groupNoValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: {},
|
schema: {},
|
||||||
@ -93,6 +133,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('participants'), ...guards, async (req, res) => {
|
.get(this.routerPath('participants'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in participants');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupJid>({
|
const response = await this.groupValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupJidSchema,
|
schema: groupJidSchema,
|
||||||
@ -103,6 +149,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('inviteCode'), ...guards, async (req, res) => {
|
.get(this.routerPath('inviteCode'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in inviteCode');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupJid>({
|
const response = await this.groupValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupJidSchema,
|
schema: groupJidSchema,
|
||||||
@ -113,6 +165,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('inviteInfo'), ...guards, async (req, res) => {
|
.get(this.routerPath('inviteInfo'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in inviteInfo');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.inviteCodeValidate<GroupInvite>({
|
const response = await this.inviteCodeValidate<GroupInvite>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupInviteSchema,
|
schema: groupInviteSchema,
|
||||||
@ -123,6 +181,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendInvite'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendInvite'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendInvite');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupNoValidate<GroupSendInvite>({
|
const response = await this.groupNoValidate<GroupSendInvite>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupSendInviteSchema,
|
schema: groupSendInviteSchema,
|
||||||
@ -133,6 +197,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.OK).json(response);
|
res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('revokeInviteCode'), ...guards, async (req, res) => {
|
.put(this.routerPath('revokeInviteCode'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in revokeInviteCode');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupJid>({
|
const response = await this.groupValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: groupJidSchema,
|
schema: groupJidSchema,
|
||||||
@ -143,6 +213,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateParticipant'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateParticipant'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateParticipant');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupUpdateParticipantDto>({
|
const response = await this.groupValidate<GroupUpdateParticipantDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: updateParticipantsSchema,
|
schema: updateParticipantsSchema,
|
||||||
@ -153,6 +229,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('updateSetting'), ...guards, async (req, res) => {
|
.put(this.routerPath('updateSetting'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in updateSetting');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupUpdateSettingDto>({
|
const response = await this.groupValidate<GroupUpdateSettingDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: updateSettingsSchema,
|
schema: updateSettingsSchema,
|
||||||
@ -163,6 +245,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('toggleEphemeral'), ...guards, async (req, res) => {
|
.put(this.routerPath('toggleEphemeral'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in toggleEphemeral');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupToggleEphemeralDto>({
|
const response = await this.groupValidate<GroupToggleEphemeralDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: toggleEphemeralSchema,
|
schema: toggleEphemeralSchema,
|
||||||
@ -173,6 +261,12 @@ export class GroupRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.delete(this.routerPath('leaveGroup'), ...guards, async (req, res) => {
|
.delete(this.routerPath('leaveGroup'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in leaveGroup');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.groupValidate<GroupJid>({
|
const response = await this.groupValidate<GroupJid>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: {},
|
schema: {},
|
||||||
|
@ -7,6 +7,9 @@ import { HttpStatus } from './index.router';
|
|||||||
import { OldToken } from '../services/auth.service';
|
import { OldToken } from '../services/auth.service';
|
||||||
import { Auth, ConfigService, Database } from '../../config/env.config';
|
import { Auth, ConfigService, Database } from '../../config/env.config';
|
||||||
import { dbserver } from '../../db/db.connect';
|
import { dbserver } from '../../db/db.connect';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('InstanceRouter');
|
||||||
|
|
||||||
export class InstanceRouter extends RouterBroker {
|
export class InstanceRouter extends RouterBroker {
|
||||||
constructor(readonly configService: ConfigService, ...guards: RequestHandler[]) {
|
constructor(readonly configService: ConfigService, ...guards: RequestHandler[]) {
|
||||||
@ -14,6 +17,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
const auth = configService.get<Auth>('AUTHENTICATION');
|
const auth = configService.get<Auth>('AUTHENTICATION');
|
||||||
this.router
|
this.router
|
||||||
.post('/create', ...guards, async (req, res) => {
|
.post('/create', ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in createInstance');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -24,6 +33,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.put(this.routerPath('restart'), ...guards, async (req, res) => {
|
.put(this.routerPath('restart'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in restartInstance');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -34,6 +49,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('connect'), ...guards, async (req, res) => {
|
.get(this.routerPath('connect'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in connectInstance');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -44,6 +65,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('connectionState'), ...guards, async (req, res) => {
|
.get(this.routerPath('connectionState'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in connectionState');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -54,6 +81,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('fetchInstances', false), ...guards, async (req, res) => {
|
.get(this.routerPath('fetchInstances', false), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in fetchInstances');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: null,
|
schema: null,
|
||||||
@ -64,6 +97,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.delete(this.routerPath('logout'), ...guards, async (req, res) => {
|
.delete(this.routerPath('logout'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in logoutInstances');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -74,6 +113,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.OK).json(response);
|
return res.status(HttpStatus.OK).json(response);
|
||||||
})
|
})
|
||||||
.delete(this.routerPath('delete'), ...guards, async (req, res) => {
|
.delete(this.routerPath('delete'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in deleteInstances');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
@ -86,6 +131,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
|
|
||||||
if (auth.TYPE === 'jwt') {
|
if (auth.TYPE === 'jwt') {
|
||||||
this.router.put('/refreshToken', async (req, res) => {
|
this.router.put('/refreshToken', async (req, res) => {
|
||||||
|
logger.verbose('request received in refreshToken');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<OldToken>({
|
const response = await this.dataValidate<OldToken>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: oldTokenSchema,
|
schema: oldTokenSchema,
|
||||||
@ -98,6 +149,12 @@ export class InstanceRouter extends RouterBroker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.router.delete('/deleteDatabase', async (req, res) => {
|
this.router.delete('/deleteDatabase', async (req, res) => {
|
||||||
|
logger.verbose('request received in deleteDatabase');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const db = this.configService.get<Database>('DATABASE');
|
const db = this.configService.get<Database>('DATABASE');
|
||||||
if (db.ENABLED) {
|
if (db.ENABLED) {
|
||||||
try {
|
try {
|
||||||
|
@ -30,12 +30,21 @@ import {
|
|||||||
import { sendMessageController } from '../whatsapp.module';
|
import { sendMessageController } from '../whatsapp.module';
|
||||||
import { RouterBroker } from '../abstract/abstract.router';
|
import { RouterBroker } from '../abstract/abstract.router';
|
||||||
import { HttpStatus } from './index.router';
|
import { HttpStatus } from './index.router';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('MessageRouter');
|
||||||
|
|
||||||
export class MessageRouter extends RouterBroker {
|
export class MessageRouter extends RouterBroker {
|
||||||
constructor(...guards: RequestHandler[]) {
|
constructor(...guards: RequestHandler[]) {
|
||||||
super();
|
super();
|
||||||
this.router
|
this.router
|
||||||
.post(this.routerPath('sendText'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendText'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendText');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendTextDto>({
|
const response = await this.dataValidate<SendTextDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: textMessageSchema,
|
schema: textMessageSchema,
|
||||||
@ -46,6 +55,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendMedia'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendMedia'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendMedia');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendMediaDto>({
|
const response = await this.dataValidate<SendMediaDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: mediaMessageSchema,
|
schema: mediaMessageSchema,
|
||||||
@ -56,6 +71,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendWhatsAppAudio'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendWhatsAppAudio'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendWhatsAppAudio');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendAudioDto>({
|
const response = await this.dataValidate<SendAudioDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: audioMessageSchema,
|
schema: audioMessageSchema,
|
||||||
@ -67,6 +88,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendButtons'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendButtons'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendButtons');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendButtonDto>({
|
const response = await this.dataValidate<SendButtonDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: buttonMessageSchema,
|
schema: buttonMessageSchema,
|
||||||
@ -77,6 +104,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendLocation'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendLocation'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendLocation');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendLocationDto>({
|
const response = await this.dataValidate<SendLocationDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: locationMessageSchema,
|
schema: locationMessageSchema,
|
||||||
@ -87,6 +120,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendList'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendList'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendList');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendListDto>({
|
const response = await this.dataValidate<SendListDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: listMessageSchema,
|
schema: listMessageSchema,
|
||||||
@ -97,6 +136,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendContact'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendContact'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendContact');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendContactDto>({
|
const response = await this.dataValidate<SendContactDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: contactMessageSchema,
|
schema: contactMessageSchema,
|
||||||
@ -107,6 +152,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendReaction'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendReaction'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendReaction');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendReactionDto>({
|
const response = await this.dataValidate<SendReactionDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: reactionMessageSchema,
|
schema: reactionMessageSchema,
|
||||||
@ -117,6 +168,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendPoll'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendPoll'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendPoll');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendPollDto>({
|
const response = await this.dataValidate<SendPollDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: pollMessageSchema,
|
schema: pollMessageSchema,
|
||||||
@ -127,6 +184,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendStatus'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendStatus'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendStatus');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendStatusDto>({
|
const response = await this.dataValidate<SendStatusDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: statusMessageSchema,
|
schema: statusMessageSchema,
|
||||||
@ -137,6 +200,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendLinkPreview'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendLinkPreview'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendLinkPreview');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendLinkPreviewDto>({
|
const response = await this.dataValidate<SendLinkPreviewDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: linkPreviewSchema,
|
schema: linkPreviewSchema,
|
||||||
@ -148,6 +217,12 @@ export class MessageRouter extends RouterBroker {
|
|||||||
return res.status(HttpStatus.CREATED).json(response);
|
return res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.post(this.routerPath('sendSticker'), ...guards, async (req, res) => {
|
.post(this.routerPath('sendSticker'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in sendSticker');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<SendStickerDto>({
|
const response = await this.dataValidate<SendStickerDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: stickerMessageSchema,
|
schema: stickerMessageSchema,
|
||||||
|
@ -5,12 +5,21 @@ import { InstanceDto } from '../dto/instance.dto';
|
|||||||
import { WebhookDto } from '../dto/webhook.dto';
|
import { WebhookDto } from '../dto/webhook.dto';
|
||||||
import { webhookController } from '../whatsapp.module';
|
import { webhookController } from '../whatsapp.module';
|
||||||
import { HttpStatus } from './index.router';
|
import { HttpStatus } from './index.router';
|
||||||
|
import { Logger } from '../../config/logger.config';
|
||||||
|
|
||||||
|
const logger = new Logger('WebhookRouter');
|
||||||
|
|
||||||
export class WebhookRouter extends RouterBroker {
|
export class WebhookRouter extends RouterBroker {
|
||||||
constructor(...guards: RequestHandler[]) {
|
constructor(...guards: RequestHandler[]) {
|
||||||
super();
|
super();
|
||||||
this.router
|
this.router
|
||||||
.post(this.routerPath('set'), ...guards, async (req, res) => {
|
.post(this.routerPath('set'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in setWebhook');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<WebhookDto>({
|
const response = await this.dataValidate<WebhookDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: webhookSchema,
|
schema: webhookSchema,
|
||||||
@ -21,6 +30,12 @@ export class WebhookRouter extends RouterBroker {
|
|||||||
res.status(HttpStatus.CREATED).json(response);
|
res.status(HttpStatus.CREATED).json(response);
|
||||||
})
|
})
|
||||||
.get(this.routerPath('find'), ...guards, async (req, res) => {
|
.get(this.routerPath('find'), ...guards, async (req, res) => {
|
||||||
|
logger.verbose('request received in findWebhook');
|
||||||
|
logger.verbose('request body: ');
|
||||||
|
logger.verbose(req.body);
|
||||||
|
|
||||||
|
logger.verbose('request query: ');
|
||||||
|
logger.verbose(req.query);
|
||||||
const response = await this.dataValidate<InstanceDto>({
|
const response = await this.dataValidate<InstanceDto>({
|
||||||
request: req,
|
request: req,
|
||||||
schema: instanceNameSchema,
|
schema: instanceNameSchema,
|
||||||
|
Loading…
Reference in New Issue
Block a user