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

Page model: added population of revision.author

Sotaro KARASAWA 10 лет назад
Родитель
Сommit
9ff49a0ef9
1 измененных файлов с 23 добавлено и 4 удалено
  1. 23 4
      lib/models/page.js

+ 23 - 4
lib/models/page.js

@@ -359,7 +359,13 @@ module.exports = function(crowi) {
             return reject(err);
           }
 
-          return resolve(pages);
+          Page.populate(pages, {path: 'revision.author', model: 'User', select: USER_PUBLIC_FIELDS}, function(err, data) {
+            if (err) {
+              return reject(err);
+            }
+
+            return resolve(data);
+          });
         });
     });
   };
@@ -381,7 +387,13 @@ module.exports = function(crowi) {
             return reject(err);
           }
 
-          return resolve(pages);
+          Page.populate(pages, {path: 'revision.author', model: 'User', select: USER_PUBLIC_FIELDS}, function(err, data) {
+            if (err) {
+              return reject(err);
+            }
+
+            return resolve(data);
+          });
         });
     });
   };
@@ -404,6 +416,7 @@ module.exports = function(crowi) {
     var sliceOption = option.revisionSlice || {$slice: 1};
 
     return new Promise(function(resolve, reject) {
+      // FIXME: might be heavy
       var q = Page.find({
           path: queryReg,
           redirectTo: null,
@@ -420,12 +433,18 @@ module.exports = function(crowi) {
         .skip(opt.offset)
         .limit(opt.limit);
 
-      q.exec(function(err, data) {
+      q.exec(function(err, pages) {
         if (err) {
           return reject(err);
         }
 
-        resolve(data);
+        Page.populate(pages, {path: 'revision.author', model: 'User', select: USER_PUBLIC_FIELDS}, function(err, data) {
+          if (err) {
+            return reject(err);
+          }
+
+          return resolve(data);
+        });
       });
     });
   };