Browse Source

fix: cleanup only for 0 new items

Karol Sójko 1 year ago
parent
commit
b1d88b15be

+ 14 - 10
packages/revisions/src/Domain/UseCase/Transition/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser/TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -63,11 +63,13 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
 
     const migrationResult = await this.migrateRevisionsForUser(userUuid)
     if (migrationResult.isFailed()) {
-      const cleanupResult = await this.deleteRevisionsForUser(userUuid, this.secondRevisionsRepository)
-      if (cleanupResult.isFailed()) {
-        this.logger.error(
-          `Failed to clean up secondary database revisions for user ${userUuid.value}: ${cleanupResult.getError()}`,
-        )
+      if (newRevisionsInSecondaryCount === 0) {
+        const cleanupResult = await this.deleteRevisionsForUser(userUuid, this.secondRevisionsRepository)
+        if (cleanupResult.isFailed()) {
+          this.logger.error(
+            `Failed to clean up secondary database revisions for user ${userUuid.value}: ${cleanupResult.getError()}`,
+          )
+        }
       }
 
       return Result.fail(migrationResult.getError())
@@ -80,11 +82,13 @@ export class TransitionRevisionsFromPrimaryToSecondaryDatabaseForUser implements
       newRevisionsInSecondaryCount,
     )
     if (integrityCheckResult.isFailed()) {
-      const cleanupResult = await this.deleteRevisionsForUser(userUuid, this.secondRevisionsRepository)
-      if (cleanupResult.isFailed()) {
-        this.logger.error(
-          `Failed to clean up secondary database revisions for user ${userUuid.value}: ${cleanupResult.getError()}`,
-        )
+      if (newRevisionsInSecondaryCount === 0) {
+        const cleanupResult = await this.deleteRevisionsForUser(userUuid, this.secondRevisionsRepository)
+        if (cleanupResult.isFailed()) {
+          this.logger.error(
+            `Failed to clean up secondary database revisions for user ${userUuid.value}: ${cleanupResult.getError()}`,
+          )
+        }
       }
 
       return Result.fail(integrityCheckResult.getError())

+ 14 - 10
packages/syncing-server/src/Domain/UseCase/Transition/TransitionItemsFromPrimaryToSecondaryDatabaseForUser/TransitionItemsFromPrimaryToSecondaryDatabaseForUser.ts

@@ -59,11 +59,13 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
 
     const migrationResult = await this.migrateItemsForUser(userUuid)
     if (migrationResult.isFailed()) {
-      const cleanupResult = await this.deleteItemsForUser(userUuid, this.secondaryItemRepository)
-      if (cleanupResult.isFailed()) {
-        this.logger.error(
-          `Failed to clean up secondary database items for user ${userUuid.value}: ${cleanupResult.getError()}`,
-        )
+      if (newItemsInSecondaryCount === 0) {
+        const cleanupResult = await this.deleteItemsForUser(userUuid, this.secondaryItemRepository)
+        if (cleanupResult.isFailed()) {
+          this.logger.error(
+            `Failed to clean up secondary database items for user ${userUuid.value}: ${cleanupResult.getError()}`,
+          )
+        }
       }
 
       return Result.fail(migrationResult.getError())
@@ -76,11 +78,13 @@ export class TransitionItemsFromPrimaryToSecondaryDatabaseForUser implements Use
       newItemsInSecondaryCount,
     )
     if (integrityCheckResult.isFailed()) {
-      const cleanupResult = await this.deleteItemsForUser(userUuid, this.secondaryItemRepository)
-      if (cleanupResult.isFailed()) {
-        this.logger.error(
-          `Failed to clean up secondary database items for user ${userUuid.value}: ${cleanupResult.getError()}`,
-        )
+      if (newItemsInSecondaryCount === 0) {
+        const cleanupResult = await this.deleteItemsForUser(userUuid, this.secondaryItemRepository)
+        if (cleanupResult.isFailed()) {
+          this.logger.error(
+            `Failed to clean up secondary database items for user ${userUuid.value}: ${cleanupResult.getError()}`,
+          )
+        }
       }
 
       return Result.fail(integrityCheckResult.getError())