diff --git a/src/api/all.dto.ts b/src/api/all.dto.ts index fb9ea39d..f319fc1a 100644 --- a/src/api/all.dto.ts +++ b/src/api/all.dto.ts @@ -11,6 +11,11 @@ export class SessionQuery { sessionName: string = WHATSAPP_DEFAULT_SESSION_NAME; } +export class CheckNumberStatusQuery extends SessionQuery { + @IsString() + phone: string +} + export class MessageTextQuery extends SessionQuery { @IsString() phone: string diff --git a/src/api/chatting.controller.ts b/src/api/chatting.controller.ts index ca043549..581be2f6 100644 --- a/src/api/chatting.controller.ts +++ b/src/api/chatting.controller.ts @@ -2,6 +2,7 @@ import {Body, Controller, Get, NotImplementedException, Post, Query} from '@nest import {ApiOperation, ApiTags} from "@nestjs/swagger"; import { ChatRequest, + CheckNumberStatusQuery, MessageContactVcard, MessageFile, MessageImage, @@ -19,6 +20,20 @@ export class ChattingController { constructor(private whatsappSessionManager: WhatsappSessionManager) { } + @Get('/checkNumberStatus') + @ApiOperation({summary: 'Check number status'}) + async checkNumberStatus( + @Query() request: CheckNumberStatusQuery, + ) { + const whatsapp = this.whatsappSessionManager.getSession(request.sessionName) + try { + const result = await whatsapp.checkNumberStatus(ensureSuffix(request.phone)) + return {numberExists: result['numberExists']} + } catch (e) { + return {numberExists: false} + } + } + @Post('/sendContactVcard') sendContactVcard(@Body() message: MessageContactVcard) { const whatsapp = this.whatsappSessionManager.getSession(message.sessionName)