Pārlūkot izejas kodu

refactor Page.pushRevision

Yuki Takei 7 gadi atpakaļ
vecāks
revīzija
9164b4fdf3
1 mainītis faili ar 16 papildinājumiem un 31 dzēšanām
  1. 16 31
      lib/models/page.js

+ 16 - 31
lib/models/page.js

@@ -950,38 +950,17 @@ module.exports = function(crowi) {
     });
   };
 
-  pageSchema.statics.pushRevision = function(pageData, newRevision, user) {
-    var isCreate = false;
-    if (pageData.revision === undefined) {
-      debug('pushRevision on Create');
-      isCreate = true;
-    }
+  pageSchema.statics.pushRevision = async function(pageData, newRevision, user) {
+    await newRevision.save();
+    debug('Successfully saved new revision', newRevision);
 
-    return new Promise(function(resolve, reject) {
-      newRevision.save(function(err, newRevision) {
-        if (err) {
-          debug('Error on saving revision', err);
-          return reject(err);
-        }
+    pageData.revision = newRevision;
+    pageData.lastUpdateUser = user;
+    pageData.updatedAt = Date.now();
 
-        debug('Successfully saved new revision', newRevision);
-        pageData.revision = newRevision;
-        pageData.lastUpdateUser = user;
-        pageData.updatedAt = Date.now();
-        pageData.save(function(err, data) {
-          if (err) {
-            // todo: remove new revision?
-            debug('Error on save page data (after push revision)', err);
-            return reject(err);
-          }
+    pageData = this.syncRevisionToHackmd(pageData, false);
 
-          resolve(data);
-          if (!isCreate) {
-            debug('pushRevision on Update');
-          }
-        });
-      });
-    });
+    return pageData.save();
   };
 
   pageSchema.statics.create = function(path, body, user, options) {
@@ -1337,11 +1316,17 @@ module.exports = function(crowi) {
   /**
    * update revisionHackmdSynced
    * @param {Page} pageData
+   * @param {bool} isSave whether save or not
    */
-  pageSchema.statics.syncRevisionToHackmd = function(pageData) {
+  pageSchema.statics.syncRevisionToHackmd = function(pageData, isSave = true) {
     pageData.revisionHackmdSynced = pageData.revision;
     pageData.hasDraftOnHackmd = false;
-    return pageData.save();
+
+    let returnData = pageData;
+    if (isSave) {
+      returnData = pageData.save();
+    }
+    return returnData;
   };
 
   /**