From ccd6161b6369a6a544466033da83cfa76b42727f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Fri, 22 Sep 2023 11:44:23 +0200 Subject: [PATCH 1/2] chore: add designated survivor uuid to shared vault metadata --- .../Domain/Response/SharedVault/GetSharedVaultsResponse.ts | 4 ++++ .../MessageTypes/AsymmetricMessageSharedVaultInvite.ts | 1 + .../Domain/Syncable/VaultListing/VaultListingSharingInfo.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 + 8 files changed, 14 insertions(+) diff --git a/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts b/packages/api/src/Domain/Response/SharedVault/GetSharedVaultsResponse.ts index 8aa95ce6ea6..a1b151ce2b8 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 e459c277ee9..9217626c4cc 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 93725b32673..fb67be0122e 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.ts b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.ts index 110abc2da41..98dc9d4ddf9 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 63812bb0a11..40c357213b9 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 a9cb7baaff5..76bd03579fb 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 2769a23a320..45abd7cdd2d 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 bd333ca098f..d1b6974fd6b 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 Date: Fri, 22 Sep 2023 12:04:18 +0200 Subject: [PATCH 2/2] fix specs --- .../AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts b/packages/services/src/Domain/AsymmetricMessage/UseCase/ProcessAcceptedVaultInvite.spec.ts index 33f8f882fa7..f2f76187f13 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: [], },