28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { Body, Controller, Get, Param, Post } from '@nestjs/common';
|
|
import { ApiTags } from '@nestjs/swagger';
|
|
import { CurrentSessionUserId } from '../auth/current-session-user.decorator';
|
|
import { RequireRecentAuthentication } from '../auth/require-recent-authentication.decorator';
|
|
import { ReviewDecisionDto, ReviewGovernanceService, ReviewTargetType } from './review-governance.service';
|
|
|
|
@ApiTags('review-governance')
|
|
@Controller('admin/reviews')
|
|
export class ReviewGovernanceController {
|
|
constructor(private readonly reviews: ReviewGovernanceService) {}
|
|
|
|
@Get(':type/:id/preflight')
|
|
preflight(@Param('type') type: ReviewTargetType, @Param('id') id: string) {
|
|
return this.reviews.preflight(type, id);
|
|
}
|
|
|
|
@Post(':type/:id/decision')
|
|
@RequireRecentAuthentication()
|
|
decide(
|
|
@Param('type') type: ReviewTargetType,
|
|
@Param('id') id: string,
|
|
@Body() body: ReviewDecisionDto,
|
|
@CurrentSessionUserId() reviewerId?: string,
|
|
) {
|
|
return this.reviews.decide(type, id, { ...body, reviewerId });
|
|
}
|
|
}
|