Files
directus/api/src/services/revisions.ts
rijkvanzanten 801e868554 Fix remaining eslint errors
h/t @paescuj
2021-04-29 15:55:12 -04:00

26 lines
783 B
TypeScript

import { ForbiddenException, InvalidPayloadException } from '../exceptions';
import { AbstractServiceOptions, PrimaryKey } from '../types';
import { ItemsService } from './items';
export class RevisionsService extends ItemsService {
constructor(options: AbstractServiceOptions) {
super('directus_revisions', options);
}
async revert(pk: PrimaryKey): Promise<void> {
const revision = await super.readOne(pk);
if (!revision) throw new ForbiddenException();
if (!revision.data) throw new InvalidPayloadException(`Revision doesn't contain data to revert to`);
const service = new ItemsService(revision.collection, {
accountability: this.accountability,
knex: this.knex,
schema: this.schema,
});
await service.updateOne(revision.item, revision.data);
}
}