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 = {
sharedVaults: SharedVaultServerHash[]
designatedSurvivors: Array<{
userUuid: string
sharedVaultUuid: string
}>
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -51,6 +51,7 @@ export class CreateSharedVault {
sharedVaultUuid: serverVaultHash.uuid,
ownerUserUuid: serverVaultHash.user_uuid,
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 designatedSurvivors = remoteVaultsResponse.data.designatedSurvivors || []
for (const localVault of localVaults) {
if (!localVault.isSharedVaultListing()) {
continue
}
const remoteVault = remoteVaults.find((vault) => vault.uuid === localVault.sharing.sharedVaultUuid)
if (remoteVault) {
const designatedSurvivor = designatedSurvivors.find((survivor) => survivor.sharedVaultUuid === remoteVault.uuid)
await this.mutator.changeItem<VaultListingMutator, SharedVaultListingInterface>(localVault, (mutator) => {
/* istanbul ignore next */
mutator.sharing = {
sharedVaultUuid: remoteVault.uuid,
ownerUserUuid: remoteVault.user_uuid,
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,
iconString: params.sharedVault.iconString,
fileBytesUsed: params.sharedVault.sharing.fileBytesUsed,
designatedSurvivor: params.sharedVault.sharing.designatedSurvivor,
},
},
},