From f7d204b20520e26899c693feaf6407ea3b188fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Fri, 22 Sep 2023 12:54:42 +0200 Subject: [PATCH] chore: add designated survivor uuid to shared vault metadata (#2527) * chore: add designated survivor uuid to shared vault metadata * fix specs --- .../Domain/Response/SharedVault/GetSharedVaultsResponse.ts | 4 ++++ .../MessageTypes/AsymmetricMessageSharedVaultInvite.ts | 1 + .../Domain/Syncable/VaultListing/VaultListingSharingInfo.ts | 1 + .../UseCase/ProcessAcceptedVaultInvite.spec.ts | 1 + .../AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts | 1 + .../src/Domain/SharedVaults/UseCase/ConvertToSharedVault.ts | 1 + .../src/Domain/SharedVaults/UseCase/CreateSharedVault.ts | 1 + .../UseCase/SyncLocalVaultsWithRemoteSharedVaults.ts | 4 ++++ .../services/src/Domain/VaultInvite/UseCase/InviteToVault.ts | 1 + 9 files changed, 15 insertions(+) diff --git a/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts b/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts index 8aa95ce6e..a1b151ce2 100644 --- a/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts +++ b/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts @@ -2,4 +2,8 @@ import { SharedVaultServerHash } from '@standardnotes/responses' export type GetSharedVaultsResponse = { sharedVaults: SharedVaultServerHash[] + designatedSurvivors: Array<{ + userUuid: string + sharedVaultUuid: string + }> } diff --git a/packages/models/src/Domain/Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite.ts b/packages/models/src/Domain/Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite.ts index e459c277e..9217626c4 100644 --- a/packages/models/src/Domain/Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite.ts +++ b/packages/models/src/Domain/Runtime/AsymmetricMessage/MessageTypes/AsymmetricMessageSharedVaultInvite.ts @@ -20,6 +20,7 @@ export type AsymmetricMessageSharedVaultInvite = { description?: string iconString: IconType | EmojiString fileBytesUsed: number + designatedSurvivor: string | null } } } diff --git a/packages/models/src/Domain/Syncable/VaultListing/VaultListingSharingInfo.ts b/packages/models/src/Domain/Syncable/VaultListing/VaultListingSharingInfo.ts index 93725b326..fb67be012 100644 --- a/packages/models/src/Domain/Syncable/VaultListing/VaultListingSharingInfo.ts +++ b/packages/models/src/Domain/Syncable/VaultListing/VaultListingSharingInfo.ts @@ -2,4 +2,5 @@ export type VaultListingSharingInfo = { sharedVaultUuid: string ownerUserUuid: string fileBytesUsed: number + designatedSurvivor: string | null } diff --git a/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts index 33f8f882f..f2f76187f 100644 --- a/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts +++ b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts @@ -39,6 +39,7 @@ describe('ProcessAcceptedVaultInvite', () => { name: 'test-name', iconString: 'safe-square', fileBytesUsed: 0, + designatedSurvivor: null, }, trustedContacts: [], }, diff --git a/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts index 110abc2da..98dc9d4dd 100644 --- a/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts +++ b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts @@ -37,6 +37,7 @@ export class ProcessAcceptedVaultInvite { sharedVaultUuid: sharedVaultUuid, ownerUserUuid: ownerUuid, fileBytesUsed: metadata.fileBytesUsed, + designatedSurvivor: metadata.designatedSurvivor, }, } diff --git a/packages/services/src/Domain/SharedVaults/UseCase/ConvertToSharedVault.ts b/packages/services/src/Domain/SharedVaults/UseCase/ConvertToSharedVault.ts index 63812bb0a..40c357213 100644 --- a/packages/services/src/Domain/SharedVaults/UseCase/ConvertToSharedVault.ts +++ b/packages/services/src/Domain/SharedVaults/UseCase/ConvertToSharedVault.ts @@ -32,6 +32,7 @@ export class ConvertToSharedVault { sharedVaultUuid: serverVaultHash.uuid, ownerUserUuid: serverVaultHash.user_uuid, fileBytesUsed: serverVaultHash.file_upload_bytes_used, + designatedSurvivor: null, } }, ) diff --git a/packages/services/src/Domain/SharedVaults/UseCase/CreateSharedVault.ts b/packages/services/src/Domain/SharedVaults/UseCase/CreateSharedVault.ts index a9cb7baaf..76bd03579 100644 --- a/packages/services/src/Domain/SharedVaults/UseCase/CreateSharedVault.ts +++ b/packages/services/src/Domain/SharedVaults/UseCase/CreateSharedVault.ts @@ -51,6 +51,7 @@ export class CreateSharedVault { sharedVaultUuid: serverVaultHash.uuid, ownerUserUuid: serverVaultHash.user_uuid, fileBytesUsed: serverVaultHash.file_upload_bytes_used, + designatedSurvivor: null, } }, ) diff --git a/packages/services/src/Domain/SharedVaults/UseCase/SyncLocalVaultsWithRemoteSharedVaults.ts b/packages/services/src/Domain/SharedVaults/UseCase/SyncLocalVaultsWithRemoteSharedVaults.ts index 2769a23a3..45abd7cdd 100644 --- a/packages/services/src/Domain/SharedVaults/UseCase/SyncLocalVaultsWithRemoteSharedVaults.ts +++ b/packages/services/src/Domain/SharedVaults/UseCase/SyncLocalVaultsWithRemoteSharedVaults.ts @@ -18,18 +18,22 @@ export class SyncLocalVaultsWithRemoteSharedVaults implements UseCaseInterface vault.uuid === localVault.sharing.sharedVaultUuid) if (remoteVault) { + const designatedSurvivor = designatedSurvivors.find((survivor) => survivor.sharedVaultUuid === remoteVault.uuid) await this.mutator.changeItem(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, } }) } diff --git a/packages/services/src/Domain/VaultInvite/UseCase/InviteToVault.ts b/packages/services/src/Domain/VaultInvite/UseCase/InviteToVault.ts index bd333ca09..d1b6974fd 100644 --- a/packages/services/src/Domain/VaultInvite/UseCase/InviteToVault.ts +++ b/packages/services/src/Domain/VaultInvite/UseCase/InviteToVault.ts @@ -124,6 +124,7 @@ export class InviteToVault implements UseCaseInterface