Skip to content

Commit 3ca8ab1

Browse files
fix: Adjusts in createJid
Adjusts in createJid
2 parents 1fcbd4f + fd82aa1 commit 3ca8ab1

2 files changed

Lines changed: 22 additions & 36 deletions

File tree

src/validate/validate.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ const optionsSchema: JSONSchema7 = {
124124

125125
const numberDefinition: JSONSchema7Definition = {
126126
type: 'string',
127-
pattern: '^\\d+[\\.@\\w-]+',
127+
// pattern: '^\\d+[\\.@\\w-]+',
128128
description: 'Invalid format',
129129
};
130130

src/whatsapp/services/whatsapp.service.ts

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1469,7 +1469,7 @@ export class WAStartupService {
14691469

14701470
private createJid(number: string): string {
14711471
this.logger.verbose('Creating jid with number: ' + number);
1472-
1472+
14731473
if (number.includes('@g.us') || number.includes('@s.whatsapp.net')) {
14741474
this.logger.verbose('Number already contains @g.us or @s.whatsapp.net');
14751475
return number;
@@ -1479,37 +1479,23 @@ export class WAStartupService {
14791479
this.logger.verbose('Number already contains @broadcast');
14801480
return number;
14811481
}
1482-
1483-
const countryCode = number.substring(0, 2);
1484-
1485-
if (Number(countryCode) === 55) {
1486-
const formattedBRNumber = this.formatBRNumber(number);
1487-
if (formattedBRNumber !== number) {
1488-
this.logger.verbose(
1489-
'Jid created is whatsapp in format BR: ' +
1490-
`${formattedBRNumber}@s.whatsapp.net`,
1491-
);
1492-
return `${formattedBRNumber}@s.whatsapp.net`;
1493-
}
1494-
}
1495-
1496-
if (Number(countryCode) === 52 || Number(countryCode) === 54) {
1497-
const formattedMXARNumber = this.formatMXOrARNumber(number);
1498-
1499-
if (formattedMXARNumber !== number) {
1500-
this.logger.verbose(
1501-
'Jid created is whatsapp in format MXAR: ' +
1502-
`${formattedMXARNumber}@s.whatsapp.net`,
1503-
);
1504-
return `${formattedMXARNumber}@s.whatsapp.net`;
1505-
}
1506-
}
1507-
1508-
if (number.includes('-')) {
1482+
1483+
number = number
1484+
?.split(":")[0]
1485+
?.split("@")[0]
1486+
?.replace(' ', '')
1487+
?.replace('+', '')
1488+
?.replace('(', '')
1489+
?.replace(')', '');
1490+
1491+
if (number.includes('-') && number.length >= 18) {
15091492
this.logger.verbose('Jid created is group: ' + `${number}@g.us`);
1493+
number = number.replace(/[^\d-]/g, '');
15101494
return `${number}@g.us`;
15111495
}
1512-
1496+
1497+
number = number.replace(/\D/g, '');
1498+
15131499
this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`);
15141500
return `${number}@s.whatsapp.net`;
15151501
}
@@ -1612,15 +1598,14 @@ export class WAStartupService {
16121598
) {
16131599
this.logger.verbose('Sending message with typing');
16141600

1615-
const jid = this.createJid(number);
1616-
const numberWA = await this.whatsappNumber({ numbers: [jid] });
1601+
const numberWA = await this.whatsappNumber({ numbers: [number] });
16171602
const isWA = numberWA[0];
16181603

16191604
if (!isWA.exists && !isJidGroup(isWA.jid) && !isWA.jid.includes('@broadcast')) {
16201605
throw new BadRequestException(isWA);
16211606
}
16221607

1623-
const sender = isJidGroup(jid) ? jid : isWA.jid;
1608+
const sender = isWA.jid;
16241609

16251610
try {
16261611
if (options?.delay) {
@@ -1629,7 +1614,7 @@ export class WAStartupService {
16291614
await this.client.presenceSubscribe(sender);
16301615
this.logger.verbose('Subscribing to presence');
16311616

1632-
await this.client.sendPresenceUpdate(options?.presence ?? 'composing', jid);
1617+
await this.client.sendPresenceUpdate(options?.presence ?? 'composing', sender);
16331618
this.logger.verbose(
16341619
'Sending presence update: ' + options?.presence ?? 'composing',
16351620
);
@@ -1692,7 +1677,8 @@ export class WAStartupService {
16921677
mentions = options.mentions.mentioned.map((mention) => {
16931678
const jid = this.createJid(mention);
16941679
if (isJidGroup(jid)) {
1695-
throw new BadRequestException('Mentions must be a number');
1680+
return null;
1681+
// throw new BadRequestException('Mentions must be a number');
16961682
}
16971683
return jid;
16981684
});
@@ -2337,7 +2323,7 @@ export class WAStartupService {
23372323
const onWhatsapp: OnWhatsAppDto[] = [];
23382324
for await (const number of data.numbers) {
23392325
const jid = this.createJid(number);
2340-
// const jid = `${number}@s.whatsapp.net`;
2326+
23412327
if (isJidGroup(jid)) {
23422328
const group = await this.findGroup({ groupJid: jid }, 'inner');
23432329

0 commit comments

Comments
 (0)