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

refs #82628: fix search keyword result sorting
- Changes for FB
- WIP: Support obsolete-page search

NEEDLEMAN3\tatsu 4 лет назад
Родитель
Сommit
8e2acd8a74
1 измененных файлов с 18 добавлено и 0 удалено
  1. 18 0
      packages/app/src/server/models/obsolete-page.js

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

@@ -1,4 +1,5 @@
 import { templateChecker, pagePathUtils } from '@growi/core';
+import { SORT_AXIS, SORT_ORDER } from '~/interfaces/search';
 import loggerFactory from '~/utils/logger';
 
 // disable no-return-await for model functions
@@ -29,6 +30,18 @@ const PAGE_GRANT_ERROR = 1;
 const STATUS_PUBLISHED = 'published';
 const STATUS_DELETED = 'deleted';
 
+const { CREATED_AT, UPDATED_AT } = SORT_AXIS;
+const { DESC, ASC } = SORT_ORDER;
+
+const OBSOLETE_SEARCH_SORT_AXIS = {
+  [CREATED_AT]: 'createdAt',
+  [UPDATED_AT]: 'updatedAt',
+};
+const OBSOLETE_SEARCH_SORT_ORDER = {
+  [DESC]: { desc: 1 },
+  [ASC]: { desc: -1 },
+};
+
 // schema definition has moved to page.ts
 const pageSchema = {
   statics: {},
@@ -219,6 +232,11 @@ export class PageQueryBuilder {
     return this;
   }
 
+  addConditionToSort(sortAxis, sortOrder) {
+    const sortCondition = { sort: OBSOLETE_SEARCH_SORT_AXIS[sortAxis], desc: OBSOLETE_SEARCH_SORT_ORDER[sortOrder] };
+    this.query = this.query.sort(sortCondition);
+  }
+
   addConditionAsNonRootPage() {
     this.query = this.query.and({ path: { $ne: '/' } });