From 610aef2f14566ca2b9f322277a4e8f139e17a28f Mon Sep 17 00:00:00 2001 From: devlikepro Date: Mon, 24 Jun 2024 18:25:38 +0700 Subject: [PATCH] [core] Make getSessionMeInfo sync --- src/api/sessions.controller.ts | 4 ++-- src/core/abc/manager.abc.ts | 5 +++-- src/core/abc/session.abc.ts | 4 ++-- src/core/engines/noweb/session.noweb.core.ts | 6 ++---- src/core/engines/webjs/session.webjs.core.ts | 9 ++++----- src/core/manager.core.ts | 2 +- src/core/webhooks.core.ts | 2 +- 7 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/api/sessions.controller.ts b/src/api/sessions.controller.ts index d7e2e3f7..0563b657 100644 --- a/src/api/sessions.controller.ts +++ b/src/api/sessions.controller.ts @@ -63,7 +63,7 @@ class SessionsController { } @Get('/') - async list(@Query() query: ListSessionsQuery): Promise { + list(@Query() query: ListSessionsQuery): Promise { const all = parseBool(query.all); return this.manager.getSessions(all); } @@ -87,7 +87,7 @@ class SessionController { @Get('me') @SessionApiParam @ApiOperation({ summary: 'Get information about the authenticated account' }) - getMe(@SessionParam session: WhatsappSession): Promise { + getMe(@SessionParam session: WhatsappSession): MeInfo | null { return session.getSessionMeInfo(); } } diff --git a/src/core/abc/manager.abc.ts b/src/core/abc/manager.abc.ts index 87c39444..179af066 100644 --- a/src/core/abc/manager.abc.ts +++ b/src/core/abc/manager.abc.ts @@ -8,6 +8,7 @@ import { EventEmitter } from 'events'; import { WAHAEngine, WAHAEvents } from '../../structures/enums.dto'; import { + MeInfo, SessionDTO, SessionInfo, SessionLogoutRequest, @@ -49,8 +50,8 @@ export abstract class SessionManager implements BeforeApplicationShutdown { abstract getSessions(all: boolean): Promise; handleSessionEvent(event: WAHAEvents, session: WhatsappSession) { - return async (payload: any) => { - const me = await session.getSessionMeInfo().catch((err) => null); + return (payload: any) => { + const me = session.getSessionMeInfo(); const data: WAHAWebhook = { event: event, session: session.name, diff --git a/src/core/abc/session.abc.ts b/src/core/abc/session.abc.ts index ccd5328b..478d3da4 100644 --- a/src/core/abc/session.abc.ts +++ b/src/core/abc/session.abc.ts @@ -219,8 +219,8 @@ export abstract class WhatsappSession { abstract getScreenshot(): Promise; - public getSessionMeInfo(): Promise { - throw new NotImplementedByEngineError(); + public getSessionMeInfo(): MeInfo | null { + return null; } public getCaptcha(): Promise { diff --git a/src/core/engines/noweb/session.noweb.core.ts b/src/core/engines/noweb/session.noweb.core.ts index d1f3fd44..c81e4899 100644 --- a/src/core/engines/noweb/session.noweb.core.ts +++ b/src/core/engines/noweb/session.noweb.core.ts @@ -1,5 +1,4 @@ import makeWASocket, { - areJidsSameUser, Browsers, Contact, DisconnectReason, @@ -424,17 +423,16 @@ export class WhatsappSessionNoWebCore extends WhatsappSession { this.store?.close(); } - async getSessionMeInfo(): Promise { + getSessionMeInfo(): MeInfo | null { const me = this.sock.authState?.creds?.me; if (!me) { return null; } const meId = jidNormalizedUser(me.id); - const meInfo: MeInfo = { + return { id: toCusFormat(meId), pushName: me.name, }; - return meInfo; } /** diff --git a/src/core/engines/webjs/session.webjs.core.ts b/src/core/engines/webjs/session.webjs.core.ts index 65a53413..1f0ed9ba 100644 --- a/src/core/engines/webjs/session.webjs.core.ts +++ b/src/core/engines/webjs/session.webjs.core.ts @@ -220,17 +220,16 @@ export class WhatsappSessionWebJSCore extends WhatsappSession { } } - async getSessionMeInfo(): Promise { + getSessionMeInfo(): MeInfo | null { const clientInfo = this.whatsapp?.info; if (!clientInfo) { return null; } const wid = clientInfo.wid; - const meInfo: MeInfo = { - id: wid._serialized, - pushName: clientInfo.pushname, + return { + id: wid?._serialized, + pushName: clientInfo?.pushname, }; - return meInfo; } protected listenEngineEventsInDebugMode() { diff --git a/src/core/manager.core.ts b/src/core/manager.core.ts index 43bb8804..a93f8aa3 100644 --- a/src/core/manager.core.ts +++ b/src/core/manager.core.ts @@ -245,7 +245,7 @@ export class SessionManagerCore extends SessionManager { }, ]; } - const me = await this.session.getSessionMeInfo().catch((err) => null); + const me = this.session.getSessionMeInfo(); const engine = { engine: this.session?.engine, ...(await this.session?.getEngineInfo().catch((err) => ({}))), diff --git a/src/core/webhooks.core.ts b/src/core/webhooks.core.ts index 009e4ec2..eaa7e84a 100644 --- a/src/core/webhooks.core.ts +++ b/src/core/webhooks.core.ts @@ -127,7 +127,7 @@ export class WebhookConductorCore implements WebhookConductor { data: any, sender: WebhookSender, ) { - const me = await session.getSessionMeInfo().catch((err) => null); + const me = session.getSessionMeInfo(); const json: WAHAWebhook = { event: event, session: session.name,