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

fix typo and move populate creator to search service layer

yuto-oweseek 4 лет назад
Родитель
Сommit
f2766e3c84

+ 1 - 1
packages/app/src/components/PageCommentList.tsx

@@ -29,7 +29,7 @@ const PageCommentList:FC<Props> = memo((props:Props):JSX.Element => {
   const { appContainer, pageId, highlightKeywords } = props;
 
   const { data: comments, mutate } = useSWRxPageComment(pageId);
-  const [formatedComments, setFormatedComments] = useState < ICommentHasIdList | null>(null);
+  const [formatedComments, setFormatedComments] = useState <ICommentHasIdList | null>(null);
 
   const commentsFromOldest = useMemo(() => (formatedComments != null ? [...formatedComments].reverse() : null), [formatedComments]);
   const commentsExceptReply: ICommentHasIdList | undefined = useMemo(

+ 1 - 1
packages/app/src/server/models/obsolete-page.js

@@ -487,7 +487,7 @@ export const getPageSchema = (crowi) => {
     const User = crowi.model('User');
 
     const opt = Object.assign({}, option);
-    const builder = new this.PageQueryBuilder(this.find({ _id: { $in: ids } }).populate('creator'), shouldIncludeEmpty);
+    const builder = new this.PageQueryBuilder(this.find({ _id: { $in: ids } }), shouldIncludeEmpty);
 
     builder.addConditionToPagenate(opt.offset, opt.limit);
 

+ 9 - 0
packages/app/src/server/service/search.ts

@@ -376,6 +376,15 @@ class SearchService implements SearchQueryParser, SearchResolver {
     const pageIds = searchResult.data.map((page) => { return page._id });
     const findPageResult = await Page.findListByPageIds(pageIds);
 
+    // populate creator
+    const creatorIds: string[] = findPageResult.pages.map(page => page.creator);
+    const creators = await User.find({ _id: { $in: creatorIds } });
+
+    findPageResult.pages = findPageResult.pages.map((page) => {
+      page.creator = creators.find(creator => creator._id.toString() === page.creator.toString());
+      return page;
+    });
+
     // set meta data
     result.meta = searchResult.meta;