Skip to content

Commit c005495

Browse files
fix: Improvement for Validation of Numbers and Groups
Improvement for Validation of Numbers and Groups
2 parents 20abdd2 + 95df402 commit c005495

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

src/validate/validate.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ export const whatsappNumberSchema: JSONSchema7 = {
446446
uniqueItems: true,
447447
items: {
448448
type: 'string',
449-
pattern: '^\\d+',
449+
// pattern: '^\\d+',
450450
description: '"numbers" must be an array of numeric strings',
451451
},
452452
},

src/whatsapp/services/whatsapp.service.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,21 +1481,27 @@ export class WAStartupService {
14811481
}
14821482

14831483
number = number
1484-
?.split(":")[0]
1485-
?.split("@")[0]
1486-
?.replace(' ', '')
1487-
?.replace('+', '')
1488-
?.replace('(', '')
1489-
?.replace(')', '');
1484+
?.replace(/\s/g, '')
1485+
.replace(/\+/g, '')
1486+
.replace(/\(/g, '')
1487+
.replace(/\)/g, '')
1488+
.split(/\:/)[0]
1489+
.split('@')[0];
14901490

1491-
if (number.includes('-') && number.length >= 18) {
1491+
if(number.includes('-') && number.length >= 24){
14921492
this.logger.verbose('Jid created is group: ' + `${number}@g.us`);
14931493
number = number.replace(/[^\d-]/g, '');
14941494
return `${number}@g.us`;
14951495
}
14961496

14971497
number = number.replace(/\D/g, '');
14981498

1499+
if (number.length >= 18) {
1500+
this.logger.verbose('Jid created is group: ' + `${number}@g.us`);
1501+
number = number.replace(/[^\d-]/g, '');
1502+
return `${number}@g.us`;
1503+
}
1504+
14991505
this.logger.verbose('Jid created is whatsapp: ' + `${number}@s.whatsapp.net`);
15001506
return `${number}@s.whatsapp.net`;
15011507
}
@@ -2327,7 +2333,7 @@ export class WAStartupService {
23272333

23282334
const onWhatsapp: OnWhatsAppDto[] = [];
23292335
for await (const number of data.numbers) {
2330-
const jid = this.createJid(number);
2336+
let jid = this.createJid(number);
23312337

23322338
if (isJidGroup(jid)) {
23332339
const group = await this.findGroup({ groupJid: jid }, 'inner');
@@ -2336,6 +2342,7 @@ export class WAStartupService {
23362342

23372343
onWhatsapp.push(new OnWhatsAppDto(group.id, !!group?.id, group?.subject));
23382344
} else {
2345+
jid = (!jid.startsWith('+')) ? `+${jid}` : jid;
23392346
const verify = await this.client.onWhatsApp(jid);
23402347

23412348
const result = verify[0];

0 commit comments

Comments
 (0)