Skip to content

Commit 4746d39

Browse files
committed
chore: Add webhookUrl to Message model, DTOs, and services
Adds webhookUrl field to Message model, SendMessageDto, SendTemplateDto, SendContactDto, and related services to enable sending messages to a specified webhook URL. This change allows for more flexible message handling and delivery options. Modified files: - prisma/postgresql-schema.prisma - src/api/dto/sendMessage.dto.ts - src/api/services/channels/whatsapp.business.service.ts - src/validate/message.schema.ts Untracked files: - prisma/migrations/20240723200254_add_webhookurl_on_message/
1 parent 50591e9 commit 4746d39

5 files changed

Lines changed: 16 additions & 0 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE "Message" ADD COLUMN "webhookUrl" VARCHAR(500);

prisma/postgresql-schema.prisma

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ model Message {
135135
Media Media?
136136
OpenaiSession OpenaiSession? @relation(fields: [openaiSessionId], references: [id])
137137
openaiSessionId String?
138+
webhookUrl String? @db.VarChar(500)
138139
}
139140

140141
model MessageUpdate {

src/api/dto/sendMessage.dto.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export class Options {
1313
encoding?: boolean;
1414
mentionsEveryOne?: boolean;
1515
mentioned?: string[];
16+
webhookUrl?: string;
1617
}
1718

1819
export class MediaMessage {
@@ -137,6 +138,7 @@ export class SendTemplateDto extends Metadata {
137138
name: string;
138139
language: string;
139140
components: any;
141+
webhookUrl?: string;
140142
}
141143
export class SendContactDto extends Metadata {
142144
contact: ContactMessage[];

src/api/services/channels/whatsapp.business.service.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,10 @@ export class BusinessStartupService extends ChannelStartupService {
548548
await this.prismaRepository.messageUpdate.create({
549549
data: message,
550550
});
551+
552+
if (findMessage.webhookUrl) {
553+
await axios.post(findMessage.webhookUrl, message);
554+
}
551555
}
552556
}
553557
}
@@ -636,6 +640,7 @@ export class BusinessStartupService extends ChannelStartupService {
636640
protected async sendMessageWithTyping(number: string, message: any, options?: Options, isIntegration = false) {
637641
try {
638642
let quoted: any;
643+
let webhookUrl: any;
639644
const linkPreview = options?.linkPreview != false ? undefined : false;
640645
if (options?.quoted) {
641646
const m = options?.quoted;
@@ -648,6 +653,9 @@ export class BusinessStartupService extends ChannelStartupService {
648653

649654
quoted = msg;
650655
}
656+
if (options?.webhookUrl) {
657+
webhookUrl = options.webhookUrl;
658+
}
651659

652660
let content: any;
653661
const messageSent = await (async () => {
@@ -826,6 +834,7 @@ export class BusinessStartupService extends ChannelStartupService {
826834
messageType: this.renderMessageType(content.type),
827835
messageTimestamp: (messageSent?.messages[0]?.timestamp as number) || Math.round(new Date().getTime() / 1000),
828836
instanceId: this.instanceId,
837+
webhookUrl,
829838
source: 'unknown',
830839
};
831840

@@ -1134,6 +1143,7 @@ export class BusinessStartupService extends ChannelStartupService {
11341143
linkPreview: data?.linkPreview,
11351144
mentionsEveryOne: data?.mentionsEveryOne,
11361145
mentioned: data?.mentioned,
1146+
webhookUrl: data?.webhookUrl,
11371147
},
11381148
isIntegration,
11391149
);

src/validate/message.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export const templateMessageSchema: JSONSchema7 = {
3333
name: { type: 'string' },
3434
language: { type: 'string' },
3535
components: { type: 'array' },
36+
webhookUrl: { type: 'string' },
3637
},
3738
required: ['name', 'language'],
3839
};

0 commit comments

Comments
 (0)