* feat(snjs): add revisions api v2 * fix(snjs): reference listing and getting revisions in specs * fix(snjs): revisions specs * fix(web): usage of revision metadata * fix(snjs): add specs for decryption revision * fix(snjs): issue with building mocked specs * fix(snjs): adjust revision creation delay
27 lines
985 B
TypeScript
27 lines
985 B
TypeScript
import { RevisionClientInterface } from '@standardnotes/services'
|
|
import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
|
|
|
|
import { DeleteRevisionDTO } from './DeleteRevisionDTO'
|
|
|
|
export class DeleteRevision implements UseCaseInterface<void> {
|
|
constructor(private revisionManager: RevisionClientInterface) {}
|
|
|
|
async execute(dto: DeleteRevisionDTO): Promise<Result<void>> {
|
|
const itemUuidOrError = Uuid.create(dto.itemUuid)
|
|
if (itemUuidOrError.isFailed()) {
|
|
return Result.fail(`Could not delete revision: ${itemUuidOrError.getError()}`)
|
|
}
|
|
const itemUuid = itemUuidOrError.getValue()
|
|
|
|
const revisionUuidOrError = Uuid.create(dto.revisionUuid)
|
|
if (revisionUuidOrError.isFailed()) {
|
|
return Result.fail(`Could not delete revision: ${revisionUuidOrError.getError()}`)
|
|
}
|
|
const revisionUuid = revisionUuidOrError.getValue()
|
|
|
|
await this.revisionManager.deleteRevision(itemUuid, revisionUuid)
|
|
|
|
return Result.ok()
|
|
}
|
|
}
|