diff --git a/packages/syncing-server/src/Domain/Item/SaveRule/GroupFilter.ts b/packages/syncing-server/src/Domain/Item/SaveRule/GroupFilter.ts index d93b3c974..82d21d930 100644 --- a/packages/syncing-server/src/Domain/Item/SaveRule/GroupFilter.ts +++ b/packages/syncing-server/src/Domain/Item/SaveRule/GroupFilter.ts @@ -55,7 +55,7 @@ export class GroupFilter implements ItemSaveRuleInterface { } } - const usesValidKey = await this.incomingItemUsesValidItemsKey(dto.itemHash) + const usesValidKey = await this.incomingItemUsesValidItemsKey(dto.itemHash, dto.existingItem.groupUuid) if (!usesValidKey) { return { passed: false, @@ -80,14 +80,17 @@ export class GroupFilter implements ItemSaveRuleInterface { return true } - private async incomingItemUsesValidItemsKey(itemHash: ItemHash): Promise { + private async incomingItemUsesValidItemsKey(itemHash: ItemHash, groupUuid: string): Promise { + if (itemHash.deleted) { + return true + } + const isItemNotEncryptedByItemsKey = itemHash.content_type === ContentType.VaultItemsKey if (isItemNotEncryptedByItemsKey) { return true } - const group = await this.groupService.getGroup({ groupUuid: itemHash.vault_system_identifier as string }) - + const group = await this.groupService.getGroup({ groupUuid: groupUuid }) if (!group) { return false } diff --git a/packages/syncing-server/src/Domain/Item/SyncResponse/SyncResponseFactory20161215.ts b/packages/syncing-server/src/Domain/Item/SyncResponse/SyncResponseFactory20161215.ts index 430259159..811a74711 100644 --- a/packages/syncing-server/src/Domain/Item/SyncResponse/SyncResponseFactory20161215.ts +++ b/packages/syncing-server/src/Domain/Item/SyncResponse/SyncResponseFactory20161215.ts @@ -28,7 +28,7 @@ export class SyncResponseFactory20161215 implements SyncResponseFactoryInterface for (const conflict of pickOutConflictsResult.unsavedItems) { unsaved.push({ item: conflict.serverItem - ? await this.itemProjector.projectFull(conflict.serverItem) + ? this.itemProjector.projectFull(conflict.serverItem) : conflict.unsavedItem, error: { tag: conflict.type, @@ -38,12 +38,12 @@ export class SyncResponseFactory20161215 implements SyncResponseFactoryInterface const retrievedItems = [] for (const item of pickOutConflictsResult.retrievedItems) { - retrievedItems.push(await this.itemProjector.projectFull(item)) + retrievedItems.push(this.itemProjector.projectFull(item)) } const savedItems = [] for (const item of syncItemsResponse.savedItems) { - savedItems.push(await this.itemProjector.projectFull(item)) + savedItems.push(this.itemProjector.projectFull(item)) } return {