RevisionsController.ts 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. import { Logger } from 'winston'
  2. import { HttpResponse, HttpStatusCode } from '@standardnotes/api'
  3. import { GetRevisionsMetada } from '../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
  4. import { GetRevisionsMetadataRequestParams } from '../Infra/Http/GetRevisionsMetadataRequestParams'
  5. export class RevisionsController {
  6. constructor(private getRevisionsMetadata: GetRevisionsMetada, private logger: Logger) {}
  7. async getRevisions(params: GetRevisionsMetadataRequestParams): Promise<HttpResponse> {
  8. const revisionMetadataOrError = await this.getRevisionsMetadata.execute({ itemUuid: params.itemUuid })
  9. if (revisionMetadataOrError.isFailed()) {
  10. this.logger.warn(revisionMetadataOrError.getError())
  11. return {
  12. status: HttpStatusCode.BadRequest,
  13. data: {
  14. error: {
  15. message: 'Could not retrieve revisions.',
  16. },
  17. },
  18. }
  19. }
  20. return {
  21. status: HttpStatusCode.Success,
  22. data: { revisions: revisionMetadataOrError.getValue() },
  23. }
  24. }
  25. }