fix: Adjust in validation for mexican and argentine numbers

This commit is contained in:
Davidson Gomes 2023-07-19 08:02:24 -03:00
parent 3cf0ced62e
commit aa75380662
2 changed files with 29 additions and 23 deletions

View File

@ -28,6 +28,7 @@
* Bug fix when sending mobile message change contact name to number in chatwoot * Bug fix when sending mobile message change contact name to number in chatwoot
* Bug fix when connecting whatsapp does not send confirmation message * Bug fix when connecting whatsapp does not send confirmation message
* Fixed quoted message with id or message directly * Fixed quoted message with id or message directly
* Adjust in validation for mexican and argentine numbers
### Integrations ### Integrations

View File

@ -1345,17 +1345,12 @@ export class WAStartupService {
// Check if the number is MX or AR // Check if the number is MX or AR
private formatMXOrARNumber(jid: string): string { private formatMXOrARNumber(jid: string): string {
const regexp = new RegExp(/^(\d{2})(\d{2})\d{1}(\d{8})$/); const countryCode = jid.substring(0, 2);
if (regexp.test(jid)) {
const match = regexp.exec(jid);
if (match && (match[1] === '52' || match[1] === '54')) { if (Number(countryCode) === 52 || Number(countryCode) === 54) {
const joker = Number.parseInt(match[3][0]); if (jid.length === 13) {
const ddd = Number.parseInt(match[2]); const number = countryCode + jid.substring(3);
if (joker < 7 || ddd < 11) { return number;
return match[0];
}
return match[1] === '52' ? '52' + match[3] : '54' + match[3];
} }
return jid; return jid;
@ -1395,22 +1390,31 @@ export class WAStartupService {
return number; return number;
} }
const formattedBRNumber = this.formatBRNumber(number); const countryCode = number.substring(0, 2);
if (formattedBRNumber !== number) {
this.logger.verbose( if (Number(countryCode) === 55) {
'Jid created is whatsapp in format BR: ' + `${formattedBRNumber}@s.whatsapp.net`, const formattedBRNumber = this.formatBRNumber(number);
); if (formattedBRNumber !== number) {
return `${formattedBRNumber}@s.whatsapp.net`; this.logger.verbose(
'Jid created is whatsapp in format BR: ' +
`${formattedBRNumber}@s.whatsapp.net`,
);
return `${formattedBRNumber}@s.whatsapp.net`;
}
} }
const formattedMXARNumber = this.formatMXOrARNumber(number); if (Number(countryCode) === 52 || Number(countryCode) === 54) {
console.log('numero mexicano');
if (formattedMXARNumber !== number) { const formattedMXARNumber = this.formatMXOrARNumber(number);
this.logger.verbose(
'Jid created is whatsapp in format MXAR: ' + if (formattedMXARNumber !== number) {
`${formattedMXARNumber}@s.whatsapp.net`, this.logger.verbose(
); 'Jid created is whatsapp in format MXAR: ' +
return `${formattedMXARNumber}@s.whatsapp.net`; `${formattedMXARNumber}@s.whatsapp.net`,
);
return `${formattedMXARNumber}@s.whatsapp.net`;
}
} }
if (number.includes('-')) { if (number.includes('-')) {
@ -2168,6 +2172,7 @@ export class WAStartupService {
const onWhatsapp: OnWhatsAppDto[] = []; const onWhatsapp: OnWhatsAppDto[] = [];
for await (const number of data.numbers) { for await (const number of data.numbers) {
const jid = this.createJid(number); const jid = this.createJid(number);
// const jid = `${number}@s.whatsapp.net`;
if (isJidGroup(jid)) { if (isJidGroup(jid)) {
const group = await this.findGroup({ groupJid: jid }, 'inner'); const group = await this.findGroup({ groupJid: jid }, 'inner');