knowledge-base.controller.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { HasAnyRoles } from 'src/auth/roles.decorator'
  2. import { KnowledgeBaseService } from './knowledge-base.service'
  3. import { Body, Controller, Delete, Get, Param, Post, Put, UploadedFile, UseInterceptors } from '@nestjs/common'
  4. import { Role } from 'src/model/role.enum'
  5. import { PageRequest } from 'src/common/dto/page-request'
  6. import { KnowledgeBase } from './entities/knowledge-base.entity'
  7. import { KnowledgeFile } from './entities/knowledge-file.entity'
  8. import { FileInterceptor } from '@nestjs/platform-express'
  9. @Controller('knowledge')
  10. @HasAnyRoles(Role.Admin, Role.Org)
  11. export class KnowledgeBaseController {
  12. constructor(private readonly knowledgeBaseService: KnowledgeBaseService) {}
  13. @Post('/base')
  14. async allKnowledgeBase(@Body() pageRequest: PageRequest<KnowledgeBase>) {
  15. return await this.knowledgeBaseService.findAllKnowledgeBase(pageRequest)
  16. }
  17. @Put('/base')
  18. async createKnowledgeBase(@Body() knowledgeBase: KnowledgeBase) {
  19. return await this.knowledgeBaseService.createKnowledgeBase(knowledgeBase)
  20. }
  21. @Put('/base/:id')
  22. async updateKnowledgeBase(@Body() knowledgeBase: KnowledgeBase) {
  23. return await this.knowledgeBaseService.updateKnowledgeBase(knowledgeBase)
  24. }
  25. @Delete('/base/:id')
  26. async deleteKnowledgeBase(@Param('id') id: string) {
  27. return await this.knowledgeBaseService.deleteKnowledgeBase(Number(id))
  28. }
  29. @Post('/file')
  30. async allKnowledgeFile(@Body() pageRequest: PageRequest<KnowledgeFile>) {
  31. return await this.knowledgeBaseService.fileAllKnowledgeFile(pageRequest)
  32. }
  33. @Put('/base/:id/file')
  34. @UseInterceptors(FileInterceptor('file'))
  35. public async uploadFile(@UploadedFile() file: Express.Multer.File, @Param('id') id: string) {
  36. return await this.knowledgeBaseService.uploadKnowledgeFile(file, Number(id))
  37. }
  38. }