pdf.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { __decorate, __metadata, __param } from "tslib";
  2. import { BodyParams, Logger } from '@tsed/common';
  3. import { Controller, Inject } from '@tsed/di';
  4. import { InternalServerError } from '@tsed/exceptions';
  5. import { Post, Returns, Enum, Description, } from '@tsed/schema';
  6. import PdfConvertService, { JobStatusSharedWithGrowi, JobStatus } from '../service/pdf-convert.js';
  7. let PdfCtrl = class PdfCtrl {
  8. pdfConvertService;
  9. logger;
  10. constructor(pdfConvertService) {
  11. this.pdfConvertService = pdfConvertService;
  12. }
  13. async syncJobStatus(jobId, expirationDateStr, growiJobStatus) {
  14. const expirationDate = new Date(expirationDateStr);
  15. try {
  16. await this.pdfConvertService.registerOrUpdateJob(jobId, expirationDate, growiJobStatus);
  17. const status = this.pdfConvertService.getJobStatus(jobId); // get status before cleanup
  18. this.pdfConvertService.cleanUpJobList();
  19. return { status };
  20. }
  21. catch (err) {
  22. this.logger.error('Failed to register or update job', err);
  23. throw new InternalServerError(err);
  24. }
  25. }
  26. };
  27. __decorate([
  28. Inject(),
  29. __metadata("design:type", Logger)
  30. ], PdfCtrl.prototype, "logger", void 0);
  31. __decorate([
  32. Post('/sync-job'),
  33. (Returns(202).ContentType('application/json').Schema({
  34. type: 'object',
  35. properties: {
  36. status: { type: 'string', enum: Object.values(JobStatus) },
  37. },
  38. required: ['status'],
  39. })),
  40. Returns(500),
  41. Description(`
  42. Sync job pdf convert status with GROWI.
  43. Register or update job inside pdf-converter with given jobId, expirationDate, and status.
  44. Return resulting status of job to GROWI.
  45. `),
  46. __param(0, BodyParams('jobId')),
  47. __param(1, BodyParams('expirationDate')),
  48. __param(2, BodyParams('status')),
  49. __param(2, Enum(Object.values(JobStatusSharedWithGrowi))),
  50. __metadata("design:type", Function),
  51. __metadata("design:paramtypes", [String, String, String]),
  52. __metadata("design:returntype", Promise)
  53. ], PdfCtrl.prototype, "syncJobStatus", null);
  54. PdfCtrl = __decorate([
  55. Controller('/pdf'),
  56. __metadata("design:paramtypes", [PdfConvertService])
  57. ], PdfCtrl);
  58. export default PdfCtrl;
  59. //# sourceMappingURL=pdf.js.map