@@ -190,7 +190,7 @@ export class WAStartupService {
190
190
'-instances' ,
191
191
)
192
192
. collection ( this . instanceName ) ;
193
- const data = await collection . findOne ( { _id : 'creds' } ) ;
193
+ const data = await collection . findOne ( { _id : 'creds' } as any ) ;
194
194
if ( data ) {
195
195
const creds = JSON . parse ( JSON . stringify ( data ) , BufferJSON . reviver ) ;
196
196
profileName = creds . me ?. name || creds . me ?. verifiedName ;
@@ -444,43 +444,55 @@ export class WAStartupService {
444
444
return await useMultiFileAuthState ( join ( INSTANCE_DIR , this . instance . name ) ) ;
445
445
}
446
446
447
- public async connectToWhatsapp ( ) : Promise < WASocket > {
448
- try {
449
- this . loadWebhook ( ) ;
447
+ private async setSocket ( ) {
448
+ this . endSession = false ;
450
449
451
- this . instance . authState = await this . defineAuthState ( ) ;
450
+ this . instance . authState = await this . defineAuthState ( ) ;
452
451
453
- const { version } = await fetchLatestBaileysVersion ( ) ;
454
- const session = this . configService . get < ConfigSessionPhone > ( 'CONFIG_SESSION_PHONE' ) ;
455
- const browser : WABrowserDescription = [ session . CLIENT , session . NAME , release ( ) ] ;
452
+ const { version } = await fetchLatestBaileysVersion ( ) ;
453
+ const session = this . configService . get < ConfigSessionPhone > ( 'CONFIG_SESSION_PHONE' ) ;
454
+ const browser : WABrowserDescription = [ session . CLIENT , session . NAME , release ( ) ] ;
456
455
457
- const socketConfig : UserFacingSocketConfig = {
458
- auth : {
459
- creds : this . instance . authState . state . creds ,
460
- keys : makeCacheableSignalKeyStore (
461
- this . instance . authState . state . keys ,
462
- P ( { level : 'error ' } ) ,
463
- ) ,
464
- } ,
465
- logger : P ( { level : 'error ' } ) ,
466
- printQRInTerminal : false ,
467
- browser,
468
- version,
469
- connectTimeoutMs : 60_000 ,
470
- qrTimeout : 40_000 ,
471
- emitOwnEvents : false ,
472
- msgRetryCounterCache : this . msgRetryCounterCache ,
473
- getMessage : this . getMessage as any ,
474
- generateHighQualityLinkPreview : true ,
475
- syncFullHistory : true ,
476
- userDevicesCache : this . userDevicesCache ,
477
- transactionOpts : { maxCommitRetries : 3 , delayBetweenTriesMs : 10 } ,
478
- } ;
456
+ const socketConfig : UserFacingSocketConfig = {
457
+ auth : {
458
+ creds : this . instance . authState . state . creds ,
459
+ keys : makeCacheableSignalKeyStore (
460
+ this . instance . authState . state . keys ,
461
+ P ( { level : 'silent ' } ) as any ,
462
+ ) ,
463
+ } ,
464
+ logger : P ( { level : 'silent ' } ) as any ,
465
+ printQRInTerminal : false ,
466
+ browser,
467
+ version,
468
+ connectTimeoutMs : 60_000 ,
469
+ qrTimeout : 10_000 ,
470
+ emitOwnEvents : false ,
471
+ msgRetryCounterCache : this . msgRetryCounterCache ,
472
+ getMessage : this . getMessage as any ,
473
+ generateHighQualityLinkPreview : true ,
474
+ syncFullHistory : true ,
475
+ userDevicesCache : this . userDevicesCache ,
476
+ transactionOpts : { maxCommitRetries : 1 , delayBetweenTriesMs : 10 } ,
477
+ } ;
479
478
480
- this . endSession = false ;
479
+ return makeWASocket ( socketConfig ) ;
480
+ }
481
481
482
- this . client = makeWASocket ( socketConfig ) ;
482
+ public async reloadConnection ( ) : Promise < WASocket > {
483
+ try {
484
+ this . client = await this . setSocket ( ) ;
485
+ return this . client ;
486
+ } catch ( error ) {
487
+ this . logger . error ( error ) ;
488
+ throw new InternalServerErrorException ( error ?. toString ( ) ) ;
489
+ }
490
+ }
483
491
492
+ public async connectToWhatsapp ( ) : Promise < WASocket > {
493
+ try {
494
+ this . loadWebhook ( ) ;
495
+ this . client = await this . setSocket ( ) ;
484
496
this . eventHandler ( ) ;
485
497
486
498
return this . client ;
@@ -649,35 +661,39 @@ export class WAStartupService {
649
661
} ,
650
662
database : Database ,
651
663
) => {
652
- const received = messages [ 0 ] ;
653
- if (
654
- type !== 'notify' ||
655
- ! received ?. message ||
656
- received . message ?. protocolMessage ||
657
- received . message . senderKeyDistributionMessage
658
- ) {
659
- return ;
660
- }
664
+ for ( const received of messages ) {
665
+ if (
666
+ type !== 'notify' ||
667
+ ! received ?. message ||
668
+ received . message ?. protocolMessage ||
669
+ received . message . senderKeyDistributionMessage
670
+ ) {
671
+ return ;
672
+ }
661
673
662
- this . client . sendPresenceUpdate ( 'unavailable' ) ;
674
+ this . client . sendPresenceUpdate ( 'unavailable' ) ;
663
675
664
- if ( Long . isLong ( received . messageTimestamp ) ) {
665
- received . messageTimestamp = received . messageTimestamp ?. toNumber ( ) ;
666
- }
676
+ if ( Long . isLong ( received . messageTimestamp ) ) {
677
+ received . messageTimestamp = received . messageTimestamp ?. toNumber ( ) ;
678
+ }
667
679
668
- const messageRaw : MessageRaw = {
669
- key : received . key ,
670
- pushName : received . pushName ,
671
- message : { ...received . message } ,
672
- messageTimestamp : received . messageTimestamp as number ,
673
- owner : this . instance . wuid ,
674
- source : getDevice ( received . key . id ) ,
675
- } ;
680
+ const messageRaw = new MessageRaw ( {
681
+ key : received . key ,
682
+ pushName : received . pushName ,
683
+ message : { ...received . message } ,
684
+ messageTimestamp : received . messageTimestamp as number ,
685
+ owner : this . instance . wuid ,
686
+ source : getDevice ( received . key . id ) ,
687
+ } ) ;
676
688
677
- this . logger . log ( received ) ;
689
+ this . logger . log ( received ) ;
678
690
679
- await this . repository . message . insert ( [ messageRaw ] , database . SAVE_DATA . NEW_MESSAGE ) ;
680
- await this . sendDataWebhook ( Events . MESSAGES_UPSERT , messageRaw ) ;
691
+ await this . repository . message . insert (
692
+ [ messageRaw ] ,
693
+ database . SAVE_DATA . NEW_MESSAGE ,
694
+ ) ;
695
+ await this . sendDataWebhook ( Events . MESSAGES_UPSERT , messageRaw ) ;
696
+ }
681
697
} ,
682
698
683
699
'messages.update' : async ( args : WAMessageUpdate [ ] , database : Database ) => {
@@ -1234,7 +1250,7 @@ export class WAStartupService {
1234
1250
'buffer' ,
1235
1251
{ } ,
1236
1252
{
1237
- logger : P ( { level : 'error ' } ) ,
1253
+ logger : P ( { level : 'silent ' } ) as any ,
1238
1254
reuploadRequest : this . client . updateMediaMessage ,
1239
1255
} ,
1240
1256
) ;
0 commit comments