Kaynağa Gözat

WIP: refactor models/page.js

* remove Page.updatePageProperty method
Yuki Takei 7 yıl önce
ebeveyn
işleme
21fc62e1f4
1 değiştirilmiş dosya ile 13 ekleme ve 26 silme
  1. 13 26
      src/server/models/page.js

+ 13 - 26
src/server/models/page.js

@@ -817,20 +817,6 @@ module.exports = function(crowi) {
     return q;
     return q;
   };
   };
 
 
-  pageSchema.statics.updatePageProperty = function(page, updateData) {
-    var Page = this;
-    return new Promise(function(resolve, reject) {
-      // TODO foreach して save
-      Page.update({_id: page._id}, {$set: updateData}, function(err, data) {
-        if (err) {
-          return reject(err);
-        }
-
-        return resolve(data);
-      });
-    });
-  };
-
   // Instance method でいいのでは
   // Instance method でいいのでは
   pageSchema.statics.pushToGrantedUsers = function(page, userData) {
   pageSchema.statics.pushToGrantedUsers = function(page, userData) {
 
 
@@ -978,8 +964,8 @@ module.exports = function(crowi) {
         return Page.completelyDeletePage(pageData, user, options);
         return Page.completelyDeletePage(pageData, user, options);
       }
       }
 
 
-      let updatedPageData = await Page.rename(pageData, newPath, user, {createRedirectPage: true});
-      await Page.updatePageProperty(updatedPageData, {status: STATUS_DELETED, lastUpdateUser: user});
+      pageData.status = STATUS_DELETED;
+      const updatedPageData = await Page.rename(pageData, newPath, user, {createRedirectPage: true});
 
 
       if (socketClientId != null) {
       if (socketClientId != null) {
         pageEvent.emit('delete', updatedPageData, user, socketClientId);
         pageEvent.emit('delete', updatedPageData, user, socketClientId);
@@ -1033,15 +1019,12 @@ module.exports = function(crowi) {
       await this.completelyDeletePage(originPage, options);
       await this.completelyDeletePage(originPage, options);
     }
     }
 
 
-    await this.updatePageProperty(page, {status: STATUS_PUBLISHED, lastUpdateUser: user});
-
     page.status = STATUS_PUBLISHED;
     page.status = STATUS_PUBLISHED;
+    page.lastUpdateUser = user;
+    debug('Revert deleted the page', page, newPath);
+    const updatedPage = await this.rename(page, newPath, user, {});
 
 
-    debug('Revert deleted the page, and rename again it', page, newPath);
-    await this.rename(page, newPath, user, {});
-    page.path = newPath;
-
-    return page;
+    return updatedPage;
   };
   };
 
 
   pageSchema.statics.revertDeletedPageRecursively = async function(page, user, options = {}) {
   pageSchema.statics.revertDeletedPageRecursively = async function(page, user, options = {}) {
@@ -1151,8 +1134,13 @@ module.exports = function(crowi) {
     // sanitize path
     // sanitize path
     newPagePath = crowi.xss.process(newPagePath);
     newPagePath = crowi.xss.process(newPagePath);
 
 
-    await Page.updatePageProperty(pageData, {updatedAt: Date.now(), path: newPagePath, lastUpdateUser: user});
-    // reivisions の path を変更
+    // update Page
+    pageData.path = newPagePath;
+    pageData.lastUpdateUser = user;
+    pageData.updatedAt = Date.now();
+    const updatedPageData = await pageData.save();
+
+    // update Rivisions
     await Revision.updateRevisionListByPath(path, {path: newPagePath}, {});
     await Revision.updateRevisionListByPath(path, {path: newPagePath}, {});
 
 
     if (createRedirectPage) {
     if (createRedirectPage) {
@@ -1160,7 +1148,6 @@ module.exports = function(crowi) {
       await Page.create(path, body, user, {redirectTo: newPagePath});
       await Page.create(path, body, user, {redirectTo: newPagePath});
     }
     }
 
 
-    let updatedPageData = await Page.findOne({path: newPagePath});
     pageEvent.emit('delete', pageData, user, socketClientId);
     pageEvent.emit('delete', pageData, user, socketClientId);
     pageEvent.emit('create', updatedPageData, user, socketClientId);
     pageEvent.emit('create', updatedPageData, user, socketClientId);