import-task.controller.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { Controller, Post, Get, Delete, Param, Body, Request, UseGuards } from '@nestjs/common';
  2. import { ImportTaskService } from './import-task.service';
  3. import { CombinedAuthGuard } from '../auth/combined-auth.guard';
  4. import { RolesGuard } from '../auth/roles.guard';
  5. import { Roles } from '../auth/roles.decorator';
  6. import { UserRole } from '../user/user-role.enum';
  7. @Controller('import-tasks')
  8. @UseGuards(CombinedAuthGuard, RolesGuard)
  9. export class ImportTaskController {
  10. constructor(private readonly taskService: ImportTaskService) { }
  11. @Post()
  12. @Roles(UserRole.TENANT_ADMIN, UserRole.SUPER_ADMIN)
  13. async create(@Request() req, @Body() body: any) {
  14. return this.taskService.create({
  15. sourcePath: body.sourcePath,
  16. targetGroupId: body.targetGroupId,
  17. targetGroupName: body.targetGroupName,
  18. embeddingModelId: body.embeddingModelId,
  19. scheduledAt: body.scheduledAt ? new Date(body.scheduledAt) : undefined,
  20. chunkSize: body.chunkSize,
  21. chunkOverlap: body.chunkOverlap,
  22. mode: body.mode,
  23. useHierarchy: body.useHierarchy ?? false,
  24. userId: req.user.id,
  25. tenantId: req.user.tenantId,
  26. });
  27. }
  28. @Get()
  29. async findAll(@Request() req) {
  30. return this.taskService.findAll(req.user.id);
  31. }
  32. @Delete(':id')
  33. async delete(@Param('id') id: string, @Request() req) {
  34. return this.taskService.delete(id, req.user.id);
  35. }
  36. }