AnnotatedRevisionsController.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { Request, Response } from 'express'
  2. import { controller, httpDelete, httpGet, httpPost, 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. import { TriggerTransitionFromPrimaryToSecondaryDatabaseForUser } from '../../Domain/UseCase/Transition/TriggerTransitionFromPrimaryToSecondaryDatabaseForUser/TriggerTransitionFromPrimaryToSecondaryDatabaseForUser'
  15. @controller('', TYPES.Revisions_ApiGatewayAuthMiddleware)
  16. export class AnnotatedRevisionsController extends BaseRevisionsController {
  17. constructor(
  18. @inject(TYPES.Revisions_GetRevisionsMetada) override getRevisionsMetadata: GetRevisionsMetada,
  19. @inject(TYPES.Revisions_GetRevision) override doGetRevision: GetRevision,
  20. @inject(TYPES.Revisions_DeleteRevision) override doDeleteRevision: DeleteRevision,
  21. @inject(TYPES.Revisions_RevisionHttpMapper)
  22. override revisionHttpMapper: MapperInterface<Revision, RevisionHttpRepresentation>,
  23. @inject(TYPES.Revisions_RevisionMetadataHttpMapper)
  24. override revisionMetadataHttpMapper: MapperInterface<RevisionMetadata, RevisionMetadataHttpRepresentation>,
  25. @inject(TYPES.Revisions_TriggerTransitionFromPrimaryToSecondaryDatabaseForUser)
  26. override triggerTransitionFromPrimaryToSecondaryDatabaseForUser: TriggerTransitionFromPrimaryToSecondaryDatabaseForUser,
  27. ) {
  28. super(
  29. getRevisionsMetadata,
  30. doGetRevision,
  31. doDeleteRevision,
  32. revisionHttpMapper,
  33. revisionMetadataHttpMapper,
  34. triggerTransitionFromPrimaryToSecondaryDatabaseForUser,
  35. )
  36. }
  37. @httpGet('/items/:itemUuid/revisions')
  38. override async getRevisions(request: Request, response: Response): Promise<results.JsonResult> {
  39. return super.getRevisions(request, response)
  40. }
  41. @httpGet('/items/:itemUuid/revisions/:uuid')
  42. override async getRevision(request: Request, response: Response): Promise<results.JsonResult> {
  43. return super.getRevision(request, response)
  44. }
  45. @httpDelete('/items/:itemUuid/revisions/:uuid')
  46. override async deleteRevision(request: Request, response: Response): Promise<results.JsonResult> {
  47. return super.deleteRevision(request, response)
  48. }
  49. @httpPost('/revisions/transition')
  50. override async transition(request: Request, response: Response): Promise<results.JsonResult> {
  51. return super.transition(request, response)
  52. }
  53. }