fix: Improvement for Validation of Numbers and Groups

Improvement for Validation of Numbers and Groups
This commit is contained in:
Davidson Gomes 2023-07-24 12:00:33 -03:00 committed by GitHub
commit c0054959cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 9 deletions

View File

@ -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',
},
},

View File

@ -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];