import { Body, Controller, Delete, Get, Param, Post, Query, } from '@nestjs/common'; import { ApiOperation, ApiSecurity, ApiTags } from '@nestjs/swagger'; import { SessionManager } from '../core/abc/manager.abc'; import { WhatsappSession } from '../core/abc/session.abc'; import { ImageStatus, TextStatus, VideoStatus, VoiceStatus, } from '../structures/status.dto'; import { SessionApiParam, SessionParam } from './helpers'; @ApiSecurity('api_key') @Controller('api/:session/status') @ApiTags('status') class StatusController { constructor(private manager: SessionManager) {} @Post('text') @SessionApiParam @ApiOperation({ summary: 'Send text status.' }) sendTextStatus( @SessionParam session: WhatsappSession, @Body() status: TextStatus, ) { return session.sendTextStatus(status); } @Post('image') @SessionApiParam @ApiOperation({ summary: 'Send image status.' }) sendImageStatus( @SessionParam session: WhatsappSession, @Body() status: ImageStatus, ) { return session.sendImageStatus(status); } @Post('voice') @SessionApiParam @ApiOperation({ summary: 'Send voice status.' }) sendVoiceStatus( @SessionParam session: WhatsappSession, @Body() status: VoiceStatus, ) { return session.sendVoiceStatus(status); } @Post('video') @SessionApiParam @ApiOperation({ summary: 'Send video status.' }) sendVideoStatus( @SessionParam session: WhatsappSession, @Body() status: VideoStatus, ) { return session.sendVideoStatus(status); } } export { StatusController };