Skip to content

Commit 1f4f621

Browse files
committed
fix: display qrcode - count=0
1 parent de8ea66 commit 1f4f621

4 files changed

Lines changed: 23 additions & 26 deletions

File tree

src/validate/router.validate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export async function dataValidate<T>(args: DataValidate<T>) {
6767
const body = request.body ?? {};
6868
const instance = request.params as unknown as InstanceDto;
6969

70-
const isNotEmptyQuery = request?.query && Object.keys(request.query).length > 0;
70+
const isNotEmptyQuery = Object.keys(request?.query ?? {}).length > 0;
7171

7272
if (isNotEmptyQuery) {
7373
Object.assign(instance, request.query);

src/whatsapp/controllers/instance.controller.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export class InstanceController {
102102
}
103103
}
104104

105-
public async connectToWhatsapp({ instanceName }: InstanceDto) {
105+
public async connectToWhatsapp({ instanceName }: InstanceDto, res: Response) {
106106
const find = await this.repository.instance.findUnique({
107107
where: { name: instanceName },
108108
});
@@ -136,12 +136,15 @@ export class InstanceController {
136136
switch (state) {
137137
case 'close':
138138
await instance.connectToWhatsapp();
139-
await delay(3000);
140-
return instance.qrCode;
139+
this.eventEmitter.once('qrcode.updated', (data: { code: string }) => {
140+
res.status(HttpStatus.OK).json({ code: data?.code });
141+
});
142+
break;
141143
case 'connecting':
142-
return instance.qrCode;
144+
res.status(HttpStatus.OK).json(instance.qrCode);
145+
break;
143146
default:
144-
return info?.status;
147+
res.status(HttpStatus.OK).json(info?.status);
145148
}
146149
} catch (error) {
147150
this.logger.error(error);
@@ -191,12 +194,12 @@ export class InstanceController {
191194
case 'close':
192195
await instance.setPhoneNumber(phoneNumber);
193196
await instance.connectToWhatsapp();
194-
this.eventEmitter.once('qrcode.updated', (data: { code: string }) => {
195-
res.status(HttpStatus.OK).json({ code: data?.code });
197+
this.eventEmitter.once('qrcode.updated', (data: { paringCode: string }) => {
198+
res.status(HttpStatus.OK).json({ code: data?.paringCode });
196199
});
197200
break;
198201
case 'connecting':
199-
res.status(HttpStatus.OK).json(instance.qrCode);
202+
res.status(HttpStatus.OK).json({ code: instance.qrCode?.paringCode });
200203
break;
201204
default:
202205
res.status(HttpStatus.OK).json(info?.status || {});

src/whatsapp/routers/instance.router.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,11 @@ export function InstanceRouter(
5757
res.status(HttpStatus.CREATED).json(response);
5858
})
5959
.get(routerPath('connect'), ...guards, async (req, res) => {
60-
const response = await dataValidate<InstanceDto>({
60+
await dataValidate<InstanceDto>({
6161
request: req,
6262
schema: instanceNameSchema,
63-
execute: (instance) => instanceController.connectToWhatsapp(instance),
63+
execute: (instance) => instanceController.connectToWhatsapp(instance, res),
6464
});
65-
66-
res.status(HttpStatus.OK).json(response);
6765
})
6866
.get(routerPath('connect') + '/code/:phoneNumber', async (req, res) => {
6967
await dataValidate<InstanceDto>({

src/whatsapp/services/whatsapp.service.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ export class WAStartupService {
340340
}
341341
} catch (error) {
342342
const axiosError = error as AxiosError;
343-
const records = this.logger.error('sendDataWebhook-local', {
343+
this.logger.error('sendDataWebhook-local', {
344344
message: axiosError?.message,
345345
hostName: error?.hostname,
346346
code: axiosError?.code,
@@ -366,7 +366,7 @@ export class WAStartupService {
366366
}
367367
} catch (error) {
368368
const axiosError = error as AxiosError;
369-
const records = this.logger.error('sendDataWebhook-global', {
369+
this.logger.error('sendDataWebhook-global', {
370370
message: axiosError?.message,
371371
hostName: error?.hostname,
372372
code: axiosError?.code,
@@ -435,25 +435,21 @@ export class WAStartupService {
435435
this.instanceQr.code = qr;
436436
this.instanceQr.base64 = base64;
437437

438-
this.ws.send(this.instance.name, 'qrcode.updated', this.instanceQr);
438+
this.ws.send(this.instance.name, 'qrcode.updated', { ...this.instanceQr });
439439

440440
this.sendDataWebhook('qrcodeUpdated', {
441441
qrcode: { instance: this.instance.name, ...this.instanceQr },
442442
});
443+
444+
this.eventEmitter.emit('qrcode.updated', { ...this.instanceQr });
443445
});
444446

445447
if (process.env.NODE_ENV === 'development') {
446448
qrcodeTerminal.generate(qr, { small: true }, (display) => {
447-
this.logger.info(
448-
`\n${JSON.stringify(
449-
{
450-
instanceName: this.instance.name,
451-
...this.instanceQr,
452-
},
453-
null,
454-
2,
455-
)}`,
456-
);
449+
this.logger.info(`qrcode[${this.instanceName}]`, {
450+
count: this.instanceQr.count,
451+
paringCode: this.instanceQr?.paringCode,
452+
});
457453
console.log(display);
458454
});
459455
}

0 commit comments

Comments
 (0)