260316:1255 Refactor to NestJS 11
Build and Deploy / deploy (push) Successful in 9m13s

This commit is contained in:
admin
2026-03-16 12:55:36 +07:00
parent c5c3ed9016
commit 25c50792e7
13 changed files with 1078 additions and 65 deletions
@@ -31,6 +31,7 @@ import { RbacGuard } from '../../common/guards/rbac.guard';
import { RequirePermission } from '../../common/decorators/require-permission.decorator';
import { Audit } from '../../common/decorators/audit.decorator';
import { ParseUuidPipe } from '../../common/pipes/parse-uuid.pipe';
import type { RequestWithUser } from '../../common/interfaces/request-with-user.interface';
@ApiTags('Correspondences')
@Controller('correspondences')
@@ -48,13 +49,7 @@ export class CorrespondenceController {
@RequirePermission('workflow.action_review')
processAction(
@Body() actionDto: WorkflowActionDto,
@Request()
req: Request & {
user: {
user_id: number;
assignments?: Array<{ role: { roleName: string } }>;
};
}
@Request() req: RequestWithUser
) {
// Extract roles from user assignments for DSL requirements check
const userRoles =
@@ -87,12 +82,9 @@ export class CorrespondenceController {
@Audit('correspondence.create', 'correspondence')
create(
@Body() createDto: CreateCorrespondenceDto,
@Request() req: Request & { user: unknown }
@Request() req: RequestWithUser
) {
return this.correspondenceService.create(
createDto,
req.user as Parameters<typeof this.correspondenceService.create>[1]
);
return this.correspondenceService.create(createDto, req.user);
}
@Post('preview-number')
@@ -104,11 +96,11 @@ export class CorrespondenceController {
@RequirePermission('correspondence.create')
previewNumber(
@Body() createDto: CreateCorrespondenceDto,
@Request() req: Request & { user: unknown }
@Request() req: RequestWithUser
) {
return this.correspondenceService.previewDocumentNumber(
createDto,
req.user as Parameters<typeof this.correspondenceService.create>[1]
req.user
);
}
@@ -131,13 +123,7 @@ export class CorrespondenceController {
async submit(
@Param('uuid', ParseUuidPipe) uuid: string,
@Body() submitDto: SubmitCorrespondenceDto,
@Request()
req: Request & {
user: {
user_id: number;
assignments?: Array<{ role: { roleName: string } }>;
};
}
@Request() req: RequestWithUser
) {
const corr = await this.correspondenceService.findOneByUuid(uuid);
// Extract roles from user assignments
@@ -172,14 +158,10 @@ export class CorrespondenceController {
async update(
@Param('uuid', ParseUuidPipe) uuid: string,
@Body() updateDto: UpdateCorrespondenceDto,
@Request() req: Request & { user: unknown }
@Request() req: RequestWithUser
) {
const corr = await this.correspondenceService.findOneByUuid(uuid);
return this.correspondenceService.update(
corr.id,
updateDto,
req.user as Parameters<typeof this.correspondenceService.create>[1]
);
return this.correspondenceService.update(corr.id, updateDto, req.user);
}
@Get(':uuid/references')
@@ -31,6 +31,7 @@ import { WorkflowTransitionDto } from './dto/workflow-transition.dto';
import { RequirePermission } from '../../common/decorators/require-permission.decorator';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { RbacGuard } from '../../common/guards/rbac.guard';
import type { RequestWithUser } from '../../common/interfaces/request-with-user.interface';
@ApiTags('Workflow Engine')
@ApiBearerAuth() // ระบุว่าต้องใช้ Token ใน Swagger
@@ -95,10 +96,10 @@ export class WorkflowEngineController {
async processTransition(
@Param('id') instanceId: string,
@Body() dto: WorkflowTransitionDto,
@Request() req: any
@Request() req: RequestWithUser
) {
// ดึง User ID จาก Token (req.user มาจาก JwtStrategy)
const userId = req.user?.userId;
const userId = req.user?.user_id;
return this.workflowService.processTransition(
instanceId,