Răsfoiți Sursa

Improved try-catch

Taichi Masuyama 4 ani în urmă
părinte
comite
68cbff5d46
1 a modificat fișierele cu 18 adăugiri și 2 ștergeri
  1. 18 2
      packages/app/src/server/service/page.ts

+ 18 - 2
packages/app/src/server/service/page.ts

@@ -429,7 +429,6 @@ class PageService {
 
     try {
       await Page.bulkWrite(updatePathOperations);
-      await PageRedirect.bulkWrite(insertPageRedirectOperations);
     }
     catch (err) {
       if (err.code !== 11000) {
@@ -437,6 +436,15 @@ class PageService {
       }
     }
 
+    try {
+      await PageRedirect.bulkWrite(insertPageRedirectOperations);
+    }
+    catch (err) {
+      if (err.code !== 11000) {
+        throw Error(`Failed to create PageRedirect documents: ${err}`);
+      }
+    }
+
     this.pageEvent.emit('updateMany', pages, user);
   }
 
@@ -474,7 +482,6 @@ class PageService {
 
     try {
       await unorderedBulkOp.execute();
-      await PageRedirect.bulkWrite(insertPageRedirectOperations);
     }
     catch (err) {
       if (err.code !== 11000) {
@@ -482,6 +489,15 @@ class PageService {
       }
     }
 
+    try {
+      await PageRedirect.bulkWrite(insertPageRedirectOperations);
+    }
+    catch (err) {
+      if (err.code !== 11000) {
+        throw Error(`Failed to create PageRedirect documents: ${err}`);
+      }
+    }
+
     this.pageEvent.emit('updateMany', pages, user);
   }