Skip to content

Commit 4ed1edf

Browse files
chatwoot_sign_delimiter
1 parent 1be1326 commit 4ed1edf

File tree

6 files changed

+18
-2
lines changed

6 files changed

+18
-2
lines changed

src/validate/validate.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -889,6 +889,7 @@ export const chatwootSchema: JSONSchema7 = {
889889
token: { type: 'string' },
890890
url: { type: 'string' },
891891
sign_msg: { type: 'boolean', enum: [true, false] },
892+
sign_delimiter: { type: ['string', 'null'] },
892893
reopen_conversation: { type: 'boolean', enum: [true, false] },
893894
conversation_pending: { type: 'boolean', enum: [true, false] },
894895
auto_create: { type: 'boolean', enum: [true, false] },

src/whatsapp/controllers/chatwoot.controller.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export class ChatwootController {
3737
if (data.sign_msg !== true && data.sign_msg !== false) {
3838
throw new BadRequestException('sign_msg is required');
3939
}
40+
if (data.sign_msg === false) data.sign_delimiter = null;
4041
}
4142

4243
if (!data.enabled) {
@@ -45,6 +46,7 @@ export class ChatwootController {
4546
data.token = '';
4647
data.url = '';
4748
data.sign_msg = false;
49+
data.sign_delimiter = null;
4850
data.reopen_conversation = false;
4951
data.conversation_pending = false;
5052
data.auto_create = false;

src/whatsapp/dto/chatwoot.dto.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export class ChatwootDto {
55
url?: string;
66
name_inbox?: string;
77
sign_msg?: boolean;
8+
sign_delimiter?: string;
89
number?: string;
910
reopen_conversation?: boolean;
1011
conversation_pending?: boolean;

src/whatsapp/models/chatwoot.model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export class ChatwootRaw {
1010
url?: string;
1111
name_inbox?: string;
1212
sign_msg?: boolean;
13+
sign_delimiter?: string;
1314
number?: string;
1415
reopen_conversation?: boolean;
1516
conversation_pending?: boolean;
@@ -23,6 +24,7 @@ const chatwootSchema = new Schema<ChatwootRaw>({
2324
url: { type: String, required: true },
2425
name_inbox: { type: String, required: true },
2526
sign_msg: { type: Boolean, required: true },
27+
sign_delimiter: { type: String, required: false },
2628
number: { type: String, required: true },
2729
reopen_conversation: { type: Boolean, required: true },
2830
conversation_pending: { type: Boolean, required: true },

src/whatsapp/services/chatwoot.service.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,13 @@ export class ChatwootService {
11211121
if (senderName === null || senderName === undefined) {
11221122
formatText = messageReceived;
11231123
} else {
1124-
formatText = this.provider.sign_msg ? `*${senderName}:*\n${messageReceived}` : messageReceived;
1124+
const formattedDelimiter = this.provider.sign_delimiter
1125+
? this.provider.sign_delimiter.replaceAll('\\n', '\n')
1126+
: '\n';
1127+
const textToConcat = this.provider.sign_msg ? [`*${senderName}:*`] : [];
1128+
textToConcat.push(messageReceived);
1129+
1130+
formatText = textToConcat.join(formattedDelimiter);
11251131
}
11261132

11271133
for (const message of body.conversation.messages) {

src/whatsapp/services/whatsapp.service.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,10 +357,12 @@ export class WAStartupService {
357357
this.logger.verbose(`Chatwoot url: ${data.url}`);
358358
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
359359
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
360+
this.logger.verbose(`Chatwoot sign delimiter: ${data.sign_delimiter}`);
360361
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
361362
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
362363

363-
Object.assign(this.localChatwoot, data);
364+
Object.assign(this.localChatwoot, { ...data, sign_delimiter: data.sign_msg ? data.sign_delimiter : null });
365+
364366
this.logger.verbose('Chatwoot set');
365367
}
366368

@@ -378,6 +380,7 @@ export class WAStartupService {
378380
this.logger.verbose(`Chatwoot url: ${data.url}`);
379381
this.logger.verbose(`Chatwoot inbox name: ${data.name_inbox}`);
380382
this.logger.verbose(`Chatwoot sign msg: ${data.sign_msg}`);
383+
this.logger.verbose(`Chatwoot sign delimiter: ${data.sign_delimiter}`);
381384
this.logger.verbose(`Chatwoot reopen conversation: ${data.reopen_conversation}`);
382385
this.logger.verbose(`Chatwoot conversation pending: ${data.conversation_pending}`);
383386

@@ -388,6 +391,7 @@ export class WAStartupService {
388391
url: data.url,
389392
name_inbox: data.name_inbox,
390393
sign_msg: data.sign_msg,
394+
sign_delimiter: data.sign_delimiter || null,
391395
reopen_conversation: data.reopen_conversation,
392396
conversation_pending: data.conversation_pending,
393397
};

0 commit comments

Comments
 (0)