mirror of
https://github.com/standardnotes/server
synced 2026-07-14 00:01:54 -04:00
* feat: add unassigning items and revisions upon shared vault removal * fix(syncing-server): update event payload creation
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
|
|
|
|
import { RemoveRevisionsFromSharedVaultDTO } from './RemoveRevisionsFromSharedVaultDTO'
|
|
import { RevisionRepositoryInterface } from '../../Revision/RevisionRepositoryInterface'
|
|
|
|
export class RemoveRevisionsFromSharedVault implements UseCaseInterface<void> {
|
|
constructor(private revisionRepository: RevisionRepositoryInterface) {}
|
|
|
|
async execute(dto: RemoveRevisionsFromSharedVaultDTO): Promise<Result<void>> {
|
|
const sharedVaultUuidOrError = Uuid.create(dto.sharedVaultUuid)
|
|
if (sharedVaultUuidOrError.isFailed()) {
|
|
return Result.fail(sharedVaultUuidOrError.getError())
|
|
}
|
|
const sharedVaultUuid = sharedVaultUuidOrError.getValue()
|
|
|
|
let itemUuid: Uuid | undefined
|
|
if (dto.itemUuid !== undefined) {
|
|
const itemUuidOrError = Uuid.create(dto.itemUuid)
|
|
if (itemUuidOrError.isFailed()) {
|
|
return Result.fail(itemUuidOrError.getError())
|
|
}
|
|
itemUuid = itemUuidOrError.getValue()
|
|
}
|
|
|
|
await this.revisionRepository.clearSharedVaultAndKeySystemAssociations({
|
|
itemUuid,
|
|
sharedVaultUuid,
|
|
})
|
|
|
|
return Result.ok()
|
|
}
|
|
}
|