fix: set webhook

This commit is contained in:
Davidson Gomes 2024-08-23 14:24:32 -03:00
parent ca503b49c6
commit fcdee75f39
3 changed files with 55 additions and 42 deletions

View File

@ -89,7 +89,8 @@ export class EventController {
instanceId: this.monitor.waInstances[instanceName].instanceId, instanceId: this.monitor.waInstances[instanceName].instanceId,
}, },
update: { update: {
...data[this.name], enabled: data[this.name]?.enabled,
events: data[this.name].events,
}, },
create: { create: {
enabled: data[this.name]?.enabled, enabled: data[this.name]?.enabled,

View File

@ -30,18 +30,24 @@ export class WebhookController extends EventController implements EventControlle
} }
} }
console.log('data.webhook', data);
return this.prisma.webhook.upsert({ return this.prisma.webhook.upsert({
where: { where: {
instanceId: this.monitor.waInstances[instanceName].instanceId, instanceId: this.monitor.waInstances[instanceName].instanceId,
}, },
update: { update: {
...data.webhook, enabled: data.webhook?.enabled,
events: data.webhook?.events,
url: data.webhook?.url,
webhookBase64: data.webhook.base64,
webhookByEvents: data.webhook.byEvents,
}, },
create: { create: {
enabled: data.webhook?.enabled, enabled: data.webhook?.enabled,
events: data.webhook.events, events: data.webhook?.events,
instanceId: this.monitor.waInstances[instanceName].instanceId, instanceId: this.monitor.waInstances[instanceName].instanceId,
url: data.webhook.url, url: data.webhook?.url,
webhookBase64: data.webhook.base64, webhookBase64: data.webhook.base64,
webhookByEvents: data.webhook.byEvents, webhookByEvents: data.webhook.byEvents,
}, },

View File

@ -24,45 +24,51 @@ export const webhookSchema: JSONSchema7 = {
$id: v4(), $id: v4(),
type: 'object', type: 'object',
properties: { properties: {
enabled: { type: 'boolean' }, webhook: {
url: { type: 'string' }, type: 'object',
webhookByEvents: { type: 'boolean' }, properties: {
webhookBase64: { type: 'boolean' }, enabled: { type: 'boolean' },
events: { url: { type: 'string' },
type: 'array', byEvents: { type: 'boolean' },
minItems: 0, base64: { type: 'boolean' },
items: { events: {
type: 'string', type: 'array',
enum: [ minItems: 0,
'APPLICATION_STARTUP', items: {
'QRCODE_UPDATED', type: 'string',
'MESSAGES_SET', enum: [
'MESSAGES_UPSERT', 'APPLICATION_STARTUP',
'MESSAGES_EDITED', 'QRCODE_UPDATED',
'MESSAGES_UPDATE', 'MESSAGES_SET',
'MESSAGES_DELETE', 'MESSAGES_UPSERT',
'SEND_MESSAGE', 'MESSAGES_EDITED',
'CONTACTS_SET', 'MESSAGES_UPDATE',
'CONTACTS_UPSERT', 'MESSAGES_DELETE',
'CONTACTS_UPDATE', 'SEND_MESSAGE',
'PRESENCE_UPDATE', 'CONTACTS_SET',
'CHATS_SET', 'CONTACTS_UPSERT',
'CHATS_UPSERT', 'CONTACTS_UPDATE',
'CHATS_UPDATE', 'PRESENCE_UPDATE',
'CHATS_DELETE', 'CHATS_SET',
'GROUPS_UPSERT', 'CHATS_UPSERT',
'GROUP_UPDATE', 'CHATS_UPDATE',
'GROUP_PARTICIPANTS_UPDATE', 'CHATS_DELETE',
'CONNECTION_UPDATE', 'GROUPS_UPSERT',
'LABELS_EDIT', 'GROUP_UPDATE',
'LABELS_ASSOCIATION', 'GROUP_PARTICIPANTS_UPDATE',
'CALL', 'CONNECTION_UPDATE',
'TYPEBOT_START', 'LABELS_EDIT',
'TYPEBOT_CHANGE_STATUS', 'LABELS_ASSOCIATION',
], 'CALL',
'TYPEBOT_START',
'TYPEBOT_CHANGE_STATUS',
],
},
},
}, },
required: ['enabled', 'url'],
...isNotEmpty('enabled', 'url'),
}, },
}, },
required: ['enabled', 'url'], required: ['webhook'],
...isNotEmpty('enabled', 'url'),
}; };