Просмотр исходного кода

Merge pull request #438 from weseek/fix/436-posting-to-slack

BugFix: v3.1.1 doesn't post to slack
Yuki Takei 7 лет назад
Родитель
Сommit
9cc8c69772
2 измененных файлов с 31 добавлено и 28 удалено
  1. 29 23
      lib/models/page.js
  2. 2 5
      lib/routes/page.js

+ 29 - 23
lib/models/page.js

@@ -529,17 +529,10 @@ module.exports = function(crowi) {
 
   // find page by path
   pageSchema.statics.findPageByPath = function(path) {
-    var Page = this;
-
-    return new Promise(function(resolve, reject) {
-      Page.findOne({path: path}, function(err, pageData) {
-        if (err || pageData === null) {
-          return reject(err);
-        }
-
-        return resolve(pageData);
-      });
-    });
+    if (path == null) {
+      return null;
+    }
+    return this.findOne({path});
   };
 
   pageSchema.statics.findListByPageIds = function(ids, options) {
@@ -918,6 +911,7 @@ module.exports = function(crowi) {
       grant = GRANT_PUBLIC;
     }
 
+    let savedPage = undefined;
     return Page.findOne({path: path})
       .then(pageData => {
         if (pageData) {
@@ -939,14 +933,18 @@ module.exports = function(crowi) {
         return newPage.save();
       })
       .then((newPage) => {
-        const newRevision = Revision.prepareRevision(newPage, body, user, {format: format});
-        return Page.pushRevision(newPage, newRevision, user)
-          .then(() => {
-            return Page.updateGrantUserGroup(newPage, grant, grantUserGroupId, user);
-          });
+        savedPage = newPage;
       })
-      .then((data) => {
-        pageEvent.emit('create', data, user);
+      .then(() => {
+        const newRevision = Revision.prepareRevision(savedPage, body, user, {format: format});
+        return Page.pushRevision(savedPage, newRevision, user);
+      })
+      .then(() => {
+        return Page.updateGrantUserGroup(savedPage, grant, grantUserGroupId, user);
+      })
+      .then(() => {
+        pageEvent.emit('create', savedPage, user);
+        return savedPage;
       });
   };
 
@@ -959,14 +957,22 @@ module.exports = function(crowi) {
     // update existing page
     var newRevision = Revision.prepareRevision(pageData, body, user);
 
+    let savedPage = undefined;
     return Page.pushRevision(pageData, newRevision, user)
-      .then(function(revision) {
-        return Page.updateGrant(pageData, grant, user, grantUserGroupId);
+      .then((revision) => {
+        // fetch Page
+        return Page.findPageByPath(revision.path).populate('revision');
       })
-      .then(function(data) {
+      .then((page) => {
+        savedPage = page;
+      })
+      .then(() => {
+        return Page.updateGrant(savedPage, grant, user, grantUserGroupId);
+      })
+      .then((data) => {
         debug('Page grant update:', data);
-        pageEvent.emit('update', data, user);
-        return data;
+        pageEvent.emit('update', savedPage, user);
+        return savedPage;
       });
   };
 

+ 2 - 5
lib/routes/page.js

@@ -626,7 +626,7 @@ module.exports = function(crowi, app) {
         return Page.create(path, body, req.user, { grant, grantUserGroupId });
       }
     }).then(function(data) {
-      // data is a saved page data.
+      // data is a saved page data with revision.
       pageData = data;
       if (!data) {
         throw new Error('Data not found');
@@ -638,10 +638,7 @@ module.exports = function(crowi, app) {
 
           if (crowi.slack) {
             notify.slack.channel.split(',').map(function(chan) {
-              crowi.slack.post(pageData, req.user, chan, updateOrCreate, previousRevision)
-                .catch((err) => {
-                  debug(err);
-                });
+              crowi.slack.post(pageData, req.user, chan, updateOrCreate, previousRevision);
             });
           }
         }