Переглянути джерело

fix(syncing-server): front load themes and user prefs as high priority load items (#935)

Karol Sójko 1 рік тому
батько
коміт
2200dca69d

+ 10 - 7
packages/syncing-server/src/Domain/UseCase/Syncing/SyncItems/SyncItems.ts

@@ -59,7 +59,7 @@ export class SyncItems implements UseCaseInterface<SyncItemsResponse> {
       )
       )
       const isSharedVaultExclusiveSync = dto.sharedVaultUuids && dto.sharedVaultUuids.length > 0
       const isSharedVaultExclusiveSync = dto.sharedVaultUuids && dto.sharedVaultUuids.length > 0
       if (this.isFirstSync(dto) && !isSharedVaultExclusiveSync) {
       if (this.isFirstSync(dto) && !isSharedVaultExclusiveSync) {
-        retrievedItems = await this.frontLoadKeysItemsToTop(dto.userUuid, retrievedItems)
+        retrievedItems = await this.frontLoadHighLoadingPriorityItemsToTop(dto.userUuid, retrievedItems)
       }
       }
 
 
       const sharedVaultsOrError = await this.getSharedVaultsUseCase.execute({
       const sharedVaultsOrError = await this.getSharedVaultsUseCase.execute({
@@ -139,19 +139,22 @@ export class SyncItems implements UseCaseInterface<SyncItemsResponse> {
     return retrievedItems.filter((item: Item) => syncConflictIds.indexOf(item.id.toString()) === -1)
     return retrievedItems.filter((item: Item) => syncConflictIds.indexOf(item.id.toString()) === -1)
   }
   }
 
 
-  private async frontLoadKeysItemsToTop(userUuid: string, retrievedItems: Array<Item>): Promise<Array<Item>> {
-    const itemsKeys = await this.itemRepository.findAll({
+  private async frontLoadHighLoadingPriorityItemsToTop(
+    userUuid: string,
+    retrievedItems: Array<Item>,
+  ): Promise<Array<Item>> {
+    const highPriorityItems = await this.itemRepository.findAll({
       userUuid,
       userUuid,
-      contentType: ContentType.TYPES.ItemsKey,
+      contentType: [ContentType.TYPES.ItemsKey, ContentType.TYPES.UserPrefs, ContentType.TYPES.Theme],
       sortBy: 'updated_at_timestamp',
       sortBy: 'updated_at_timestamp',
       sortOrder: 'ASC',
       sortOrder: 'ASC',
     })
     })
 
 
     const retrievedItemsIds: Array<string> = retrievedItems.map((item: Item) => item.id.toString())
     const retrievedItemsIds: Array<string> = retrievedItems.map((item: Item) => item.id.toString())
 
 
-    itemsKeys.forEach((itemKey: Item) => {
-      if (retrievedItemsIds.indexOf(itemKey.id.toString()) === -1) {
-        retrievedItems.unshift(itemKey)
+    highPriorityItems.forEach((highPriorityItem: Item) => {
+      if (retrievedItemsIds.indexOf(highPriorityItem.id.toString()) === -1) {
+        retrievedItems.unshift(highPriorityItem)
       }
       }
     })
     })