import-task.controller.ts 1.6 KB

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