diff --git a/src/validate/validate.schema.ts b/src/validate/validate.schema.ts index ff95074e..18a070ab 100644 --- a/src/validate/validate.schema.ts +++ b/src/validate/validate.schema.ts @@ -446,7 +446,7 @@ export const whatsappNumberSchema: JSONSchema7 = { uniqueItems: true, items: { type: 'string', - pattern: '^\\d+', + // pattern: '^\\d+', description: '"numbers" must be an array of numeric strings', }, }, diff --git a/src/whatsapp/services/whatsapp.service.ts b/src/whatsapp/services/whatsapp.service.ts index 5521d872..a1bac0cd 100644 --- a/src/whatsapp/services/whatsapp.service.ts +++ b/src/whatsapp/services/whatsapp.service.ts @@ -1481,14 +1481,14 @@ export class WAStartupService { } number = number - ?.split(":")[0] - ?.split("@")[0] - ?.replace(' ', '') - ?.replace('+', '') - ?.replace('(', '') - ?.replace(')', ''); + ?.replace(/\s/g, '') + .replace(/\+/g, '') + .replace(/\(/g, '') + .replace(/\)/g, '') + .split(/\:/)[0] + .split('@')[0]; - if (number.includes('-') && number.length >= 18) { + if(number.includes('-') && number.length >= 24){ this.logger.verbose('Jid created is group: ' + `${number}@g.us`); number = number.replace(/[^\d-]/g, ''); return `${number}@g.us`; @@ -1496,6 +1496,12 @@ export class WAStartupService { number = number.replace(/\D/g, ''); + if (number.length >= 18) { + this.logger.verbose('Jid created is group: ' + `${number}@g.us`); + number = number.replace(/[^\d-]/g, ''); + return `${number}@g.us`; + } + this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`); return `${number}@s.whatsapp.net`; } @@ -2327,7 +2333,7 @@ export class WAStartupService { const onWhatsapp: OnWhatsAppDto[] = []; for await (const number of data.numbers) { - const jid = this.createJid(number); + let jid = this.createJid(number); if (isJidGroup(jid)) { const group = await this.findGroup({ groupJid: jid }, 'inner'); @@ -2336,6 +2342,7 @@ export class WAStartupService { onWhatsapp.push(new OnWhatsAppDto(group.id, !!group?.id, group?.subject)); } else { + jid = (!jid.startsWith('+')) ? `+${jid}` : jid; const verify = await this.client.onWhatsApp(jid); const result = verify[0];