ocr.controller.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {
  2. Controller,
  3. Post,
  4. UseGuards,
  5. UseInterceptors,
  6. UploadedFile,
  7. } from '@nestjs/common';
  8. import { FileInterceptor } from '@nestjs/platform-express';
  9. import { CombinedAuthGuard } from '../auth/combined-auth.guard';
  10. import { OcrService } from './ocr.service';
  11. import { I18nService } from '../i18n/i18n.service';
  12. @Controller('ocr')
  13. @UseGuards(CombinedAuthGuard)
  14. @UseGuards(CombinedAuthGuard)
  15. export class OcrController {
  16. constructor(
  17. private readonly ocrService: OcrService,
  18. private readonly i18n: I18nService
  19. ) { }
  20. @Post('recognize')
  21. @UseInterceptors(FileInterceptor('image'))
  22. async recognizeText(@UploadedFile() image: Express.Multer.File) {
  23. console.log('OCR recognition endpoint called');
  24. if (!image) {
  25. console.error('No image uploaded');
  26. throw new Error(this.i18n.getMessage('noImageUploaded'));
  27. }
  28. console.log(`Received image. Size: ${image.size} bytes`);
  29. const text = await this.ocrService.extractTextFromImage(image.buffer);
  30. console.log(`OCR extraction completed. Text length: ${text.length}`);
  31. return { text };
  32. }
  33. }