api-server/src/modules/import-candidate/import-candidate.controller.ts

46 lines
1.5 KiB
TypeScript
Raw Normal View History

import { Controller, Get, Post, Patch, Body, Param } from '@nestjs/common';
import { ApiTags, ApiOperation } from '@nestjs/swagger';
import { ImportCandidateService } from './import-candidate.service';
@ApiTags('import-candidate')
@Controller()
export class ImportCandidateController {
constructor(private readonly service: ImportCandidateService) {}
@Get('knowledge-sources/:sourceId/import-candidates')
@ApiOperation({ summary: '获取资料来源的候选知识点' })
async findBySource(@Param('sourceId') sourceId: string) {
return this.service.findBySource(sourceId);
}
@Get('import-candidates/:id')
@ApiOperation({ summary: '获取候选知识点详情' })
async findOne(@Param('id') id: string) {
return this.service.findOne(id);
}
@Patch('import-candidates/:id')
@ApiOperation({ summary: '编辑候选知识点' })
async update(@Param('id') id: string, @Body() dto: any) {
return this.service.update(id, dto);
}
@Post('import-candidates/:id/accept')
@ApiOperation({ summary: '接受候选知识点 → 生成 KnowledgeItem' })
async accept(@Param('id') id: string) {
return this.service.accept(id);
}
@Post('import-candidates/:id/reject')
@ApiOperation({ summary: '拒绝候选知识点' })
async reject(@Param('id') id: string) {
return this.service.reject(id);
}
@Post('import-candidates/batch-accept')
@ApiOperation({ summary: '批量接受候选知识点' })
async batchAccept(@Body() dto: { sourceId: string }) {
return this.service.batchAccept(dto.sourceId);
}
}