TsuyoshiSuzukief пре 7 година
родитељ
комит
98c1ba5663
2 измењених фајлова са 27 додато и 44 уклоњено
  1. 19 34
      src/server/models/page.js
  2. 8 10
      src/server/routes/page.js

+ 19 - 34
src/server/models/page.js

@@ -669,41 +669,27 @@ module.exports = function(crowi) {
     });
   };
 
-  pageSchema.statics.findListByCreator = function(user, option, currentUser) {
-    var Page = this;
-    var User = crowi.model('User');
-    var limit = option.limit || 50;
-    var offset = option.offset || 0;
-    var conditions = setPageListConditions(user);
-
-    return new Promise(function(resolve, reject) {
-      Page
-      .find(conditions)
-      .sort({createdAt: -1})
-      .skip(offset)
-      .limit(limit)
-      .populate('revision')
-      .exec()
-      .then(function(pages) {
-        return Page.populate(pages, {path: 'lastUpdateUser', model: 'User', select: User.USER_PUBLIC_FIELDS}).then(function(pagesData){
-          let countFetcher;
-          countFetcher = Page.countListByCreator(user,option,currentUser);
-          countFetcher.then(function(count){
-            pagesArray = [
-              {totalCount: count}
-            ];
-            pagesArray.push(pagesData);
-            resolve(pagesArray);
-          });
-        });
-      });
-    });
+  pageSchema.statics.findListByCreator = async function(user, option, currentUser) {
+    let Page = this;
+    let User = crowi.model('User');
+    let limit = option.limit || 50;
+    let offset = option.offset || 0;
+    let conditions = setPageListConditions(user);
+
+    let pages =  await Page.find(conditions).sort({createdAt: -1}).skip(offset).limit(limit).populate('revision').exec();
+    let PagesList = await Page.populate(pages, {path: 'lastUpdateUser', model: 'User', select: User.USER_PUBLIC_FIELDS});
+    let totalCount = await Page.countListByCreator(user);
+    let PagesArray = [
+      {totalCount: totalCount}
+    ];
+    PagesArray.push(PagesList);
+    return PagesArray;
   };
   function setPageListConditions(user) {
     const conditions = {
       creator: user._id,
       redirectTo: null,
-      $and : [
+      $and: [
         {$or: [
           {status: null},
           {status: STATUS_PUBLISHED},
@@ -717,10 +703,9 @@ module.exports = function(crowi) {
     return conditions;
   }
 
-  pageSchema.statics.countListByCreator = function(user, option, currentUser) {
-    var Page = this;
-    var User = crowi.model('User');
-    var conditions = setPageListConditions(user);
+  pageSchema.statics.countListByCreator = function(user) {
+    let Page = this;
+    let conditions = setPageListConditions(user);
 
     return Page.find(conditions).count();
   };

+ 8 - 10
src/server/routes/page.js

@@ -1262,7 +1262,7 @@ module.exports = function(crowi, app) {
     });
   };
 
-  api.recentCreated = function(req, res) {
+  api.recentCreated = async function(req, res) {
     const username = req.query.user || null;
     const limit = + req.query.limit || 50;
     const offset = + req.query.offset || 0;
@@ -1273,23 +1273,21 @@ module.exports = function(crowi, app) {
       return res.json(ApiResponse.error('Parameter user is required.'));
     }
 
-    let pageFetcher;
-    pageFetcher = User.findUserByUsername(username)
-    .then(function(user) {
+    try {
+      let user = await User.findUserByUsername(username);
       if (user == null) {
         throw new Error('The user not found.');
       }
-      return Page.findListByCreator(user, queryOptions, req.user);
-    });
+      let pages = await Page.findListByCreator(user, queryOptions, req.user);
 
-    pageFetcher
-    .then(function(pages) {
       const result = {};
       result.pages = pagePathUtils.encodePagesPath(pages);
+
       return res.json(ApiResponse.success(result));
-    }).catch(function(err) {
+    }
+    catch (err) {
       return res.json(ApiResponse.error(err));
-    });
+    }
   };
 
   return actions;