[core] Add sessions.deprecated.dto

This commit is contained in:
devlikepro committed 2024-08-27 16:42:36 +07:00
1 parent 24bf22a31f
commit 0f41e79e98
5 files changed
+61 -58

No files matched your search

+10 -6
View File
@@ -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<SessionDTO> {
async start(
@Body() request: SessionStartDeprecatedRequest,
): Promise<SessionDTO> {
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<void> {
async stop(@Body() request: SessionStopDeprecatedRequest): Promise<void> {
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<void> {
async logout(@Body() request: SessionLogoutDeprecatedRequest): Promise<void> {
const name = request.name;
await this.manager.stop(name, true);
await this.manager.logout(name);
+1 -8
View File
@@ -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';
-3
View File
@@ -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';
+50
View File
@@ -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;
}
-41
View File
@@ -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',