Skip to content

Commit aa75380

Browse files
committed
fix: Adjust in validation for mexican and argentine numbers
1 parent 3cf0ced commit aa75380

File tree

2 files changed

+29
-23
lines changed

2 files changed

+29
-23
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
* Bug fix when sending mobile message change contact name to number in chatwoot
2929
* Bug fix when connecting whatsapp does not send confirmation message
3030
* Fixed quoted message with id or message directly
31+
* Adjust in validation for mexican and argentine numbers
3132

3233
### Integrations
3334

src/whatsapp/services/whatsapp.service.ts

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,17 +1345,12 @@ export class WAStartupService {
13451345

13461346
// Check if the number is MX or AR
13471347
private formatMXOrARNumber(jid: string): string {
1348-
const regexp = new RegExp(/^(\d{2})(\d{2})\d{1}(\d{8})$/);
1349-
if (regexp.test(jid)) {
1350-
const match = regexp.exec(jid);
1348+
const countryCode = jid.substring(0, 2);
13511349

1352-
if (match && (match[1] === '52' || match[1] === '54')) {
1353-
const joker = Number.parseInt(match[3][0]);
1354-
const ddd = Number.parseInt(match[2]);
1355-
if (joker < 7 || ddd < 11) {
1356-
return match[0];
1357-
}
1358-
return match[1] === '52' ? '52' + match[3] : '54' + match[3];
1350+
if (Number(countryCode) === 52 || Number(countryCode) === 54) {
1351+
if (jid.length === 13) {
1352+
const number = countryCode + jid.substring(3);
1353+
return number;
13591354
}
13601355

13611356
return jid;
@@ -1395,22 +1390,31 @@ export class WAStartupService {
13951390
return number;
13961391
}
13971392

1398-
const formattedBRNumber = this.formatBRNumber(number);
1399-
if (formattedBRNumber !== number) {
1400-
this.logger.verbose(
1401-
'Jid created is whatsapp in format BR: ' + `${formattedBRNumber}@s.whatsapp.net`,
1402-
);
1403-
return `${formattedBRNumber}@s.whatsapp.net`;
1393+
const countryCode = number.substring(0, 2);
1394+
1395+
if (Number(countryCode) === 55) {
1396+
const formattedBRNumber = this.formatBRNumber(number);
1397+
if (formattedBRNumber !== number) {
1398+
this.logger.verbose(
1399+
'Jid created is whatsapp in format BR: ' +
1400+
`${formattedBRNumber}@s.whatsapp.net`,
1401+
);
1402+
return `${formattedBRNumber}@s.whatsapp.net`;
1403+
}
14041404
}
14051405

1406-
const formattedMXARNumber = this.formatMXOrARNumber(number);
1406+
if (Number(countryCode) === 52 || Number(countryCode) === 54) {
1407+
console.log('numero mexicano');
14071408

1408-
if (formattedMXARNumber !== number) {
1409-
this.logger.verbose(
1410-
'Jid created is whatsapp in format MXAR: ' +
1411-
`${formattedMXARNumber}@s.whatsapp.net`,
1412-
);
1413-
return `${formattedMXARNumber}@s.whatsapp.net`;
1409+
const formattedMXARNumber = this.formatMXOrARNumber(number);
1410+
1411+
if (formattedMXARNumber !== number) {
1412+
this.logger.verbose(
1413+
'Jid created is whatsapp in format MXAR: ' +
1414+
`${formattedMXARNumber}@s.whatsapp.net`,
1415+
);
1416+
return `${formattedMXARNumber}@s.whatsapp.net`;
1417+
}
14141418
}
14151419

14161420
if (number.includes('-')) {
@@ -2168,6 +2172,7 @@ export class WAStartupService {
21682172
const onWhatsapp: OnWhatsAppDto[] = [];
21692173
for await (const number of data.numbers) {
21702174
const jid = this.createJid(number);
2175+
// const jid = `${number}@s.whatsapp.net`;
21712176
if (isJidGroup(jid)) {
21722177
const group = await this.findGroup({ groupJid: jid }, 'inner');
21732178

0 commit comments

Comments
 (0)