|
import { |
|
Controller, |
|
Get, |
|
Query, |
|
Res, |
|
StreamableFile, |
|
UseInterceptors, |
|
} from '@nestjs/common'; |
|
import { ApiSecurity, ApiTags } from '@nestjs/swagger'; |
|
import { Response } from 'express'; |
|
|
|
import { SessionManager } from '../core/abc/manager.abc'; |
|
import { SessionQuery } from '../structures/base.dto'; |
|
import { BufferResponseInterceptor } from './BufferResponseInterceptor'; |
|
import { ApiFileAcceptHeader } from './helpers'; |
|
|
|
@ApiSecurity('api_key') |
|
@Controller('api') |
|
@ApiTags('screenshot') |
|
export class ScreenshotController { |
|
constructor(private manager: SessionManager) {} |
|
|
|
@Get('/screenshot') |
|
@UseInterceptors(new BufferResponseInterceptor()) |
|
@ApiFileAcceptHeader() |
|
async screenshot( |
|
@Res({ passthrough: true }) res: Response, |
|
@Query() sessionQuery: SessionQuery, |
|
) { |
|
const whatsappService = this.manager.getSession(sessionQuery.session); |
|
return await whatsappService.getScreenshot(); |
|
} |
|
} |
|
|