AnnotatedRevisionsController.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { Request, Response } from 'express'
  2. import { controller, httpDelete, httpGet, results } from 'inversify-express-utils'
  3. import { inject } from 'inversify'
  4. import TYPES from '../../Bootstrap/Types'
  5. import { BaseRevisionsController } from './Base/BaseRevisionsController'
  6. import { GetRevisionsMetada } from '../../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
  7. import { GetRevision } from '../../Domain/UseCase/GetRevision/GetRevision'
  8. import { DeleteRevision } from '../../Domain/UseCase/DeleteRevision/DeleteRevision'
  9. import { MapperInterface } from '@standardnotes/domain-core'
  10. import { Revision } from '../../Domain/Revision/Revision'
  11. import { RevisionMetadata } from '../../Domain/Revision/RevisionMetadata'
  12. import { RevisionHttpRepresentation } from '../../Mapping/Http/RevisionHttpRepresentation'
  13. import { RevisionMetadataHttpRepresentation } from '../../Mapping/Http/RevisionMetadataHttpRepresentation'
  14. @controller('/items/:itemUuid/revisions', TYPES.Revisions_ApiGatewayAuthMiddleware)
  15. export class AnnotatedRevisionsController extends BaseRevisionsController {
  16. constructor(
  17. @inject(TYPES.Revisions_GetRevisionsMetada) override getRevisionsMetadata: GetRevisionsMetada,
  18. @inject(TYPES.Revisions_GetRevision) override doGetRevision: GetRevision,
  19. @inject(TYPES.Revisions_DeleteRevision) override doDeleteRevision: DeleteRevision,
  20. @inject(TYPES.Revisions_RevisionHttpMapper)
  21. override revisionHttpMapper: MapperInterface<Revision, RevisionHttpRepresentation>,
  22. @inject(TYPES.Revisions_RevisionMetadataHttpMapper)
  23. override revisionMetadataHttpMapper: MapperInterface<RevisionMetadata, RevisionMetadataHttpRepresentation>,
  24. ) {
  25. super(getRevisionsMetadata, doGetRevision, doDeleteRevision, revisionHttpMapper, revisionMetadataHttpMapper)
  26. }
  27. @httpGet('/')
  28. override async getRevisions(request: Request, response: Response): Promise<results.JsonResult> {
  29. return super.getRevisions(request, response)
  30. }
  31. @httpGet('/:uuid')
  32. override async getRevision(request: Request, response: Response): Promise<results.JsonResult> {
  33. return super.getRevision(request, response)
  34. }
  35. @httpDelete('/:uuid')
  36. override async deleteRevision(request: Request, response: Response): Promise<results.JsonResult> {
  37. return super.deleteRevision(request, response)
  38. }
  39. }