From 0f41e79e987b1464bb07b7bdc1b13c51e9523014 Mon Sep 17 00:00:00 2001 From: devlikepro Date: Mon, 12 Aug 2024 09:48:11 +0700 Subject: [PATCH] [core] Add sessions.deprecated.dto --- src/api/sessions.controller.ts | 16 +++++--- src/core/abc/manager.abc.ts | 9 +--- src/core/manager.core.ts | 3 -- src/structures/sessions.deprecated.dto.ts | 50 +++++++++++++++++++++++ src/structures/sessions.dto.ts | 41 ------------------- 5 files changed, 61 insertions(+), 58 deletions(-) create mode 100644 src/structures/sessions.deprecated.dto.ts diff --git a/src/api/sessions.controller.ts b/src/api/sessions.controller.ts index 7d4714d5..ef02c57d 100644 --- a/src/api/sessions.controller.ts +++ b/src/api/sessions.controller.ts @@ -15,6 +15,11 @@ import { SessionParam, } from '@waha/nestjs/params/SessionApiParam'; import { WAHAValidationPipe } from '@waha/nestjs/pipes/WAHAValidationPipe'; +import { + SessionLogoutDeprecatedRequest, + SessionStartDeprecatedRequest, + SessionStopDeprecatedRequest, +} from '@waha/structures/sessions.deprecated.dto'; import { SessionManager } from '../core/abc/manager.abc'; import { WhatsappSession } from '../core/abc/session.abc'; @@ -23,9 +28,6 @@ import { MeInfo, SessionDTO, SessionInfo, - SessionLogoutRequest, - SessionStartRequest, - SessionStopRequest, } from '../structures/sessions.dto'; @ApiSecurity('api_key') @@ -75,7 +77,9 @@ class SessionsDeprecatedController { deprecated: true, }) @UsePipes(new WAHAValidationPipe()) - async start(@Body() request: SessionStartRequest): Promise { + async start( + @Body() request: SessionStartDeprecatedRequest, + ): Promise { const name = request.name; if (this.manager.isRunning(name)) { const msg = `Session '${name}' is already started.`; @@ -96,7 +100,7 @@ class SessionsDeprecatedController { deprecated: true, }) @UsePipes(new WAHAValidationPipe()) - async stop(@Body() request: SessionStopRequest): Promise { + async stop(@Body() request: SessionStopDeprecatedRequest): Promise { const name = request.name; if (request.logout) { // Old API did remove the session complete @@ -116,7 +120,7 @@ class SessionsDeprecatedController { deprecated: true, }) @UsePipes(new WAHAValidationPipe()) - async logout(@Body() request: SessionLogoutRequest): Promise { + async logout(@Body() request: SessionLogoutDeprecatedRequest): Promise { const name = request.name; await this.manager.stop(name, true); await this.manager.logout(name); diff --git a/src/core/abc/manager.abc.ts b/src/core/abc/manager.abc.ts index 978de752..3a1fe7e1 100644 --- a/src/core/abc/manager.abc.ts +++ b/src/core/abc/manager.abc.ts @@ -1,20 +1,13 @@ -import { - BeforeApplicationShutdown, - OnApplicationShutdown, -} from '@nestjs/common'; +import { BeforeApplicationShutdown } from '@nestjs/common'; import { WAHAWebhook } from '@waha/structures/webhooks.dto'; import { VERSION } from '@waha/version'; import { EventEmitter } from 'events'; import { WAHAEngine, WAHAEvents } from '../../structures/enums.dto'; import { - MeInfo, SessionConfig, SessionDTO, SessionInfo, - SessionLogoutRequest, - SessionStartRequest, - SessionStopRequest, } from '../../structures/sessions.dto'; import { ISessionAuthRepository } from '../storage/ISessionAuthRepository'; import { ISessionConfigRepository } from '../storage/ISessionConfigRepository'; diff --git a/src/core/manager.core.ts b/src/core/manager.core.ts index 85f6b84e..e6fb51f9 100644 --- a/src/core/manager.core.ts +++ b/src/core/manager.core.ts @@ -21,9 +21,6 @@ import { SessionConfig, SessionDTO, SessionInfo, - SessionLogoutRequest, - SessionStartRequest, - SessionStopRequest, } from '../structures/sessions.dto'; import { WebhookConfig } from '../structures/webhooks.config.dto'; import { SessionManager } from './abc/manager.abc'; diff --git a/src/structures/sessions.deprecated.dto.ts b/src/structures/sessions.deprecated.dto.ts new file mode 100644 index 00000000..98804ba6 --- /dev/null +++ b/src/structures/sessions.deprecated.dto.ts @@ -0,0 +1,50 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { SessionConfig } from '@waha/structures/sessions.dto'; +import { Type } from 'class-transformer'; +import { + IsBoolean, + IsOptional, + IsString, + ValidateNested, +} from 'class-validator'; + +export class SessionStartDeprecatedRequest { + @ApiProperty({ + example: 'default', + description: 'Session name (aka id)', + }) + @IsString() + name: string; + + @ValidateNested() + @Type(() => SessionConfig) + @IsOptional() + config?: SessionConfig; +} + +export class SessionStopDeprecatedRequest { + @ApiProperty({ + example: 'default', + description: 'Session name (aka id)', + }) + @IsString() + name: string; + + @ApiProperty({ + example: false, + required: false, + description: 'Stop and logout from the session.', + }) + @IsBoolean() + @IsOptional() + logout: boolean | undefined = false; +} + +export class SessionLogoutDeprecatedRequest { + @ApiProperty({ + example: 'default', + description: 'Session name (aka id)', + }) + @IsString() + name: string; +} diff --git a/src/structures/sessions.dto.ts b/src/structures/sessions.dto.ts index e225bc06..f3ab6b7d 100644 --- a/src/structures/sessions.dto.ts +++ b/src/structures/sessions.dto.ts @@ -112,47 +112,6 @@ export class SessionConfig { noweb?: NowebConfig; } -export class SessionStartRequest { - @ApiProperty({ - example: 'default', - description: 'Session name (aka id)', - }) - @IsString() - name: string; - - @ValidateNested() - @Type(() => SessionConfig) - @IsOptional() - config?: SessionConfig; -} - -export class SessionStopRequest { - @ApiProperty({ - example: 'default', - description: 'Session name (aka id)', - }) - @IsString() - name: string; - - @ApiProperty({ - example: false, - required: false, - description: 'Stop and logout from the session.', - }) - @IsBoolean() - @IsOptional() - logout: boolean | undefined = false; -} - -export class SessionLogoutRequest { - @ApiProperty({ - example: 'default', - description: 'Session name (aka id)', - }) - @IsString() - name: string; -} - export class SessionDTO { @ApiProperty({ example: 'default',