chore: add designated survivor uuid to shared vault metadata (#2527)

* chore: add designated survivor uuid to shared vault metadata

* fix specs
This commit is contained in:
Karol Sójko
2023-09-22 12:54:42 +02:00
committed by GitHub
parent 2c599df6be
commit f7d204b205
9 changed files with 15 additions and 0 deletions

View File

@@ -2,4 +2,8 @@ import { SharedVaultServerHash } from '@standardnotes/responses'
export type GetSharedVaultsResponse = { export type GetSharedVaultsResponse = {
sharedVaults: SharedVaultServerHash[] sharedVaults: SharedVaultServerHash[]
designatedSurvivors: Array<{
userUuid: string
sharedVaultUuid: string
}>
} }

View File

@@ -20,6 +20,7 @@ export type AsymmetricMessageSharedVaultInvite = {
description?: string description?: string
iconString: IconType | EmojiString iconString: IconType | EmojiString
fileBytesUsed: number fileBytesUsed: number
designatedSurvivor: string | null
} }
} }
} }

View File

@@ -2,4 +2,5 @@ export type VaultListingSharingInfo = {
sharedVaultUuid: string sharedVaultUuid: string
ownerUserUuid: string ownerUserUuid: string
fileBytesUsed: number fileBytesUsed: number
designatedSurvivor: string | null
} }

View File

@@ -39,6 +39,7 @@ describe('ProcessAcceptedVaultInvite', () => {
name: 'test-name', name: 'test-name',
iconString: 'safe-square', iconString: 'safe-square',
fileBytesUsed: 0, fileBytesUsed: 0,
designatedSurvivor: null,
}, },
trustedContacts: [], trustedContacts: [],
}, },

View File

@@ -37,6 +37,7 @@ export class ProcessAcceptedVaultInvite {
sharedVaultUuid: sharedVaultUuid, sharedVaultUuid: sharedVaultUuid,
ownerUserUuid: ownerUuid, ownerUserUuid: ownerUuid,
fileBytesUsed: metadata.fileBytesUsed, fileBytesUsed: metadata.fileBytesUsed,
designatedSurvivor: metadata.designatedSurvivor,
}, },
} }

View File

@@ -32,6 +32,7 @@ export class ConvertToSharedVault {
sharedVaultUuid: serverVaultHash.uuid, sharedVaultUuid: serverVaultHash.uuid,
ownerUserUuid: serverVaultHash.user_uuid, ownerUserUuid: serverVaultHash.user_uuid,
fileBytesUsed: serverVaultHash.file_upload_bytes_used, fileBytesUsed: serverVaultHash.file_upload_bytes_used,
designatedSurvivor: null,
} }
}, },
) )

View File

@@ -51,6 +51,7 @@ export class CreateSharedVault {
sharedVaultUuid: serverVaultHash.uuid, sharedVaultUuid: serverVaultHash.uuid,
ownerUserUuid: serverVaultHash.user_uuid, ownerUserUuid: serverVaultHash.user_uuid,
fileBytesUsed: serverVaultHash.file_upload_bytes_used, fileBytesUsed: serverVaultHash.file_upload_bytes_used,
designatedSurvivor: null,
} }
}, },
) )

View File

@@ -18,18 +18,22 @@ export class SyncLocalVaultsWithRemoteSharedVaults implements UseCaseInterface<v
} }
const remoteVaults = remoteVaultsResponse.data.sharedVaults const remoteVaults = remoteVaultsResponse.data.sharedVaults
const designatedSurvivors = remoteVaultsResponse.data.designatedSurvivors || []
for (const localVault of localVaults) { for (const localVault of localVaults) {
if (!localVault.isSharedVaultListing()) { if (!localVault.isSharedVaultListing()) {
continue continue
} }
const remoteVault = remoteVaults.find((vault) => vault.uuid === localVault.sharing.sharedVaultUuid) const remoteVault = remoteVaults.find((vault) => vault.uuid === localVault.sharing.sharedVaultUuid)
if (remoteVault) { if (remoteVault) {
const designatedSurvivor = designatedSurvivors.find((survivor) => survivor.sharedVaultUuid === remoteVault.uuid)
await this.mutator.changeItem<VaultListingMutator, SharedVaultListingInterface>(localVault, (mutator) => { await this.mutator.changeItem<VaultListingMutator, SharedVaultListingInterface>(localVault, (mutator) => {
/* istanbul ignore next */ /* istanbul ignore next */
mutator.sharing = { mutator.sharing = {
sharedVaultUuid: remoteVault.uuid, sharedVaultUuid: remoteVault.uuid,
ownerUserUuid: remoteVault.user_uuid, ownerUserUuid: remoteVault.user_uuid,
fileBytesUsed: remoteVault.file_upload_bytes_used, fileBytesUsed: remoteVault.file_upload_bytes_used,
designatedSurvivor: designatedSurvivor ? designatedSurvivor.userUuid : null,
} }
}) })
} }

View File

@@ -124,6 +124,7 @@ export class InviteToVault implements UseCaseInterface<SharedVaultInviteServerHa
description: params.sharedVault.description, description: params.sharedVault.description,
iconString: params.sharedVault.iconString, iconString: params.sharedVault.iconString,
fileBytesUsed: params.sharedVault.sharing.fileBytesUsed, fileBytesUsed: params.sharedVault.sharing.fileBytesUsed,
designatedSurvivor: params.sharedVault.sharing.designatedSurvivor,
}, },
}, },
}, },