Răsfoiți Sursa

refactor put back method

Yuken Tezuka 3 ani în urmă
părinte
comite
ebff2d8f91
1 a modificat fișierele cu 10 adăugiri și 16 ștergeri
  1. 10 16
      packages/app/src/server/service/page.ts

+ 10 - 16
packages/app/src/server/service/page.ts

@@ -2013,29 +2013,23 @@ class PageService {
     const originPage = await Page.findByPath(newPath, includeEmpty);
 
     // throw if any page already exists when recursively operation
-    if (originPage != null && (!originPage.isEmpty || isRecursively === true)) {
+    if (originPage != null && (!originPage.isEmpty || isRecursively)) {
       throw new PathAlreadyExistsError('already_exists', originPage.path);
     }
 
     // 2. Revert target
     const parent = await this.getParentAndFillAncestorsByUser(user, newPath);
-    let updatedPage;
-    if (originPage != null) {
-      updatedPage = await Page.findByIdAndUpdate(page._id, {
-        $set: {
-          // eslint-disable-next-line max-len
-          path: newPath, status: Page.STATUS_PUBLISHED, lastUpdateUser: user._id, deleteUser: null, deletedAt: null, descendantCount: originPage.descendantCount,
-        },
-      }, { new: true });
+    const shouldReplace = originPage != null && originPage.isEmpty;
+    let updatedPage = await Page.findByIdAndUpdate(page._id, {
+      $set: {
+        // eslint-disable-next-line max-len
+        path: newPath, status: Page.STATUS_PUBLISHED, lastUpdateUser: user._id, deleteUser: null, deletedAt: null, descendantCount: shouldReplace ? originPage.descendantCount : 0,
+      },
+    }, { new: true });
+
+    if (shouldReplace) {
       updatedPage = await Page.replaceTargetWithPage(originPage, updatedPage, true);
     }
-    else {
-      updatedPage = await Page.findByIdAndUpdate(page._id, {
-        $set: {
-          path: newPath, status: Page.STATUS_PUBLISHED, lastUpdateUser: user._id, deleteUser: null, deletedAt: null, parent: parent._id, descendantCount: 0,
-        },
-      }, { new: true });
-    }
 
     await PageTagRelation.updateMany({ relatedPage: page._id }, { $set: { isPageTrashed: false } });