BaseRevisionsController.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { BaseHttpController, results } from 'inversify-express-utils'
  2. import { Request, Response } from 'express'
  3. import { ControllerContainerInterface } from '@standardnotes/domain-core'
  4. import { RevisionsController } from '../../../Controller/RevisionsController'
  5. export class BaseRevisionsController extends BaseHttpController {
  6. constructor(
  7. protected revisionsController: RevisionsController,
  8. private controllerContainer?: ControllerContainerInterface,
  9. ) {
  10. super()
  11. if (this.controllerContainer !== undefined) {
  12. this.controllerContainer.register('revisions.revisions.getRevisions', this.getRevisions.bind(this))
  13. this.controllerContainer.register('revisions.revisions.getRevision', this.getRevision.bind(this))
  14. this.controllerContainer.register('revisions.revisions.deleteRevision', this.deleteRevision.bind(this))
  15. }
  16. }
  17. async getRevisions(req: Request, response: Response): Promise<results.JsonResult> {
  18. const result = await this.revisionsController.getRevisions({
  19. itemUuid: req.params.itemUuid,
  20. userUuid: response.locals.user.uuid,
  21. })
  22. return this.json(result.data, result.status)
  23. }
  24. async getRevision(req: Request, response: Response): Promise<results.JsonResult> {
  25. const result = await this.revisionsController.getRevision({
  26. revisionUuid: req.params.uuid,
  27. userUuid: response.locals.user.uuid,
  28. })
  29. return this.json(result.data, result.status)
  30. }
  31. async deleteRevision(req: Request, response: Response): Promise<results.JsonResult> {
  32. const result = await this.revisionsController.deleteRevision({
  33. revisionUuid: req.params.uuid,
  34. userUuid: response.locals.user.uuid,
  35. })
  36. return this.json(result.data, result.status)
  37. }
  38. }