45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { Body, Controller, Get, Param, Post } from '@nestjs/common';
|
||
import { Permissions } from '../common/permissions.js';
|
||
import { AuditLog, RequirePermissions } from '../auth/decorators.js';
|
||
import { ChangePlanDto, ConfirmPlanDto, CreatePlanDto } from './dto.js';
|
||
import { PlanService } from './plan.service.js';
|
||
|
||
@Controller('plan')
|
||
export class PlanController {
|
||
constructor(private readonly service: PlanService) {}
|
||
|
||
@Post()
|
||
@RequirePermissions(Permissions.plan.create)
|
||
@AuditLog('plan', 'create')
|
||
create(@Body() dto: CreatePlanDto) {
|
||
return this.service.create(dto);
|
||
}
|
||
|
||
@Post('change')
|
||
@RequirePermissions(Permissions.plan.change)
|
||
@AuditLog('plan', 'change')
|
||
change(@Body() dto: ChangePlanDto) {
|
||
return this.service.change(dto);
|
||
}
|
||
|
||
// 注意:by-elder 必须先于 :id 声明,否则 :id 会吞掉 by-elder。
|
||
@Get('by-elder/:elderId')
|
||
@RequirePermissions(Permissions.plan.detail)
|
||
byElder(@Param('elderId') elderId: string) {
|
||
return this.service.byElder(elderId);
|
||
}
|
||
|
||
@Get(':id')
|
||
@RequirePermissions(Permissions.plan.detail)
|
||
detail(@Param('id') id: string) {
|
||
return this.service.detail(id);
|
||
}
|
||
|
||
@Post(':id/confirm')
|
||
@RequirePermissions(Permissions.plan.confirm)
|
||
@AuditLog('plan', 'confirm')
|
||
confirm(@Param('id') id: string, @Body() dto: ConfirmPlanDto) {
|
||
return this.service.confirm(id, dto);
|
||
}
|
||
}
|