import { Body, Controller, Delete, Get, Param, Post, UseGuards } from '@nestjs/common'; import { AdminService } from './admin.service'; import { AdminAuthGuard } from './admin.guard'; @Controller('admin') @UseGuards(AdminAuthGuard) export class AdminController { constructor(private readonly adminService: AdminService) { } @Get('clipboards') listClipboards() { return this.adminService.listClipboards(); } @Get('clipboards/:roomCode') getClipboard(@Param('roomCode') roomCode: string) { return this.adminService.getClipboard(roomCode); } @Post('clipboards/:roomCode/password') updatePassword( @Param('roomCode') roomCode: string, @Body() body: { password?: string | null }, ) { return this.adminService.setPassword(roomCode, body.password); } @Post('clipboards/:roomCode/ttl') updateTTL( @Param('roomCode') roomCode: string, @Body() body: { ttl?: number | null }, ) { const ttl = body.ttl === null || body.ttl === undefined ? null : Number(body.ttl); return this.adminService.setTTL(roomCode, isNaN(ttl) ? null : ttl); } @Delete('clipboards/:roomCode') deleteClipboard(@Param('roomCode') roomCode: string) { return this.adminService.deleteClipboard(roomCode); } }