note.controller.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import {
  2. Controller,
  3. Get,
  4. Post,
  5. Body,
  6. Patch,
  7. Param,
  8. Delete,
  9. UseGuards,
  10. Req,
  11. Query,
  12. UseInterceptors,
  13. UploadedFile,
  14. } from '@nestjs/common';
  15. import { FileInterceptor } from '@nestjs/platform-express';
  16. import { CombinedAuthGuard } from '../auth/combined-auth.guard';
  17. import { NoteService } from './note.service';
  18. import { Note } from './note.entity';
  19. @Controller('notes')
  20. @UseGuards(CombinedAuthGuard)
  21. export class NoteController {
  22. constructor(private readonly noteService: NoteService) { }
  23. @Post()
  24. create(@Req() req, @Body() createNoteDto: Partial<Note>) {
  25. return this.noteService.create(req.user.id, req.user.tenantId, createNoteDto);
  26. }
  27. @Get()
  28. findAll(
  29. @Req() req,
  30. @Query('groupId') groupId?: string,
  31. @Query('categoryId') categoryId?: string,
  32. ) {
  33. return this.noteService.findAll(req.user.id, req.user.tenantId, req.user.isAdmin, groupId, categoryId);
  34. }
  35. @Get(':id')
  36. findOne(@Req() req, @Param('id') id: string) {
  37. return this.noteService.findOne(req.user.id, req.user.tenantId, id, req.user.isAdmin);
  38. }
  39. @Patch(':id')
  40. update(
  41. @Req() req,
  42. @Param('id') id: string,
  43. @Body() updateNoteDto: Partial<Note>,
  44. ) {
  45. return this.noteService.update(req.user.id, req.user.tenantId, id, updateNoteDto, req.user.isAdmin);
  46. }
  47. @Delete(':id')
  48. remove(@Req() req, @Param('id') id: string) {
  49. return this.noteService.remove(req.user.id, req.user.tenantId, id, req.user.isAdmin);
  50. }
  51. @Post('from-pdf-selection')
  52. @UseInterceptors(FileInterceptor('screenshot'))
  53. createFromPDFSelection(
  54. @Req() req,
  55. @UploadedFile() screenshot: Express.Multer.File,
  56. @Body('fileId') fileId: string,
  57. @Body('groupId') groupId?: string,
  58. @Body('pageNumber') pageNumber?: string,
  59. ) {
  60. return this.noteService.createFromPDFSelection(
  61. req.user.id,
  62. req.user.tenantId,
  63. fileId,
  64. screenshot,
  65. groupId,
  66. pageNumber ? parseInt(pageNumber, 10) : undefined,
  67. );
  68. }
  69. }