Files
lcbp3/backend/src/modules/correspondence/correspondence.controller.ts

51 lines
1.7 KiB
TypeScript

import {
Controller,
Get,
Post,
Body,
UseGuards,
Request,
Param, // <--- ✅ 1. เพิ่ม Param
ParseIntPipe, // <--- ✅ 2. เพิ่ม ParseIntPipe
} from '@nestjs/common';
import { CorrespondenceService } from './correspondence.service.js';
import { CreateCorrespondenceDto } from './dto/create-correspondence.dto.js';
import { SubmitCorrespondenceDto } from './dto/submit-correspondence.dto.js'; // <--- ✅ 3. เพิ่ม Import DTO นี้
import { JwtAuthGuard } from '../../common/auth/jwt-auth.guard.js';
import { RbacGuard } from '../../common/auth/rbac.guard.js';
import { RequirePermission } from '../../common/decorators/require-permission.decorator.js';
@Controller('correspondences')
@UseGuards(JwtAuthGuard, RbacGuard)
export class CorrespondenceController {
constructor(private readonly correspondenceService: CorrespondenceService) {}
@Post()
@RequirePermission('correspondence.create') // 🔒 ต้องมีสิทธิ์สร้าง
create(@Body() createDto: CreateCorrespondenceDto, @Request() req: any) {
return this.correspondenceService.create(createDto, req.user);
}
@Get()
@RequirePermission('document.view') // 🔒 ต้องมีสิทธิ์ดู
findAll() {
return this.correspondenceService.findAll();
}
// ✅ เพิ่ม Endpoint นี้ครับ
@Post(':id/submit')
@RequirePermission('correspondence.create') // หรือจะสร้าง Permission ใหม่ 'workflow.submit' ก็ได้
submit(
@Param('id', ParseIntPipe) id: number,
@Body() submitDto: SubmitCorrespondenceDto,
@Request() req: any,
) {
return this.correspondenceService.submit(
id,
submitDto.templateId,
req.user,
);
}
}