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:
@@ -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
|
||||||
|
}>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ export type AsymmetricMessageSharedVaultInvite = {
|
|||||||
description?: string
|
description?: string
|
||||||
iconString: IconType | EmojiString
|
iconString: IconType | EmojiString
|
||||||
fileBytesUsed: number
|
fileBytesUsed: number
|
||||||
|
designatedSurvivor: string | null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,5 @@ export type VaultListingSharingInfo = {
|
|||||||
sharedVaultUuid: string
|
sharedVaultUuid: string
|
||||||
ownerUserUuid: string
|
ownerUserUuid: string
|
||||||
fileBytesUsed: number
|
fileBytesUsed: number
|
||||||
|
designatedSurvivor: string | null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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: [],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export class ProcessAcceptedVaultInvite {
|
|||||||
sharedVaultUuid: sharedVaultUuid,
|
sharedVaultUuid: sharedVaultUuid,
|
||||||
ownerUserUuid: ownerUuid,
|
ownerUserUuid: ownerUuid,
|
||||||
fileBytesUsed: metadata.fileBytesUsed,
|
fileBytesUsed: metadata.fileBytesUsed,
|
||||||
|
designatedSurvivor: metadata.designatedSurvivor,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user