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

move a function for add tag data to result pages

yusuketk 7 лет назад
Родитель
Сommit
f6d4e31b8e
2 измененных файлов с 10 добавлено и 8 удалено
  1. 2 7
      src/server/models/page.js
  2. 8 1
      src/server/routes/search.js

+ 2 - 7
src/server/models/page.js

@@ -749,10 +749,9 @@ module.exports = function(crowi) {
     return await findListFromBuilderAndViewer(builder, currentUser, showAnyoneKnowsLink, opt);
   };
 
-  pageSchema.statics.getPageListByEsResult = async function(resultPages, option) {
+  pageSchema.statics.findPageByPageId = async function(ids, option) {
     const User = crowi.model('User');
 
-    const ids = resultPages.map((page) => { return page._id });
     const opt = Object.assign({}, option);
     const builder = new PageQueryBuilder(this.find({ _id: { $in: ids } }));
 
@@ -765,11 +764,7 @@ module.exports = function(crowi) {
     // find
     builder.populateDataToList(User.USER_PUBLIC_FIELDS, User.IMAGE_POPULATION);
     const pages = await builder.query.exec('find');
-    pages.map((page) => {
-      const data = resultPages.find((data) => { return page.id === data._id });
-      page._doc.tags = data._source.tag_names;
-      return page;
-    });
+
     const result = {
       pages, totalCount, offset: opt.offset, limit: opt.limit,
     };

+ 8 - 1
src/server/routes/search.js

@@ -69,7 +69,14 @@ module.exports = function(crowi, app) {
         scoreMap[esPage._id] = esPage._score;
       }
 
-      const findResult = await Page.getPageListByEsResult(esResult.data);
+      const ids = esResult.data.map((page) => { return page._id });
+      const findResult = await Page.findPageByPageId(ids);
+
+      findResult.pages.map((page) => {
+        const data = esResult.data.find((data) => { return page.id === data._id });
+        page._doc.tags = data._source.tag_names;
+        return page;
+      });
 
       result.meta = esResult.meta;
       result.totalCount = findResult.totalCount;