فهرست منبع

reorganize meta types

Yuki Takei 4 سال پیش
والد
کامیت
8132990177

+ 6 - 6
packages/app/src/interfaces/search.ts

@@ -19,16 +19,16 @@ export const isIPageSearchMeta = (meta: IPageInfoAll | (IPageInfoAll & IPageSear
   return meta != null && 'elasticSearchResult' in meta;
 };
 
-export type IFormattedSearchResult = {
-  data: IPageWithMeta<IPageSearchMeta>[]
-
-  totalCount: number
-
+export type ISearchResultMeta = {
   meta: {
     total: number
     took: number
     hitsCount: number
-  }
+  },
+}
+
+export type IFormattedSearchResult = ISearchResultMeta & {
+  data: IPageWithMeta<IPageSearchMeta>[],
 }
 
 export const SORT_AXIS = {

+ 2 - 8
packages/app/src/server/interfaces/search.ts

@@ -1,5 +1,6 @@
 /* eslint-disable camelcase */
 import { SearchDelegatorName } from '~/interfaces/named-query';
+import { ISearchResultMeta } from '~/interfaces/search';
 
 
 export type QueryTerms = {
@@ -25,20 +26,13 @@ export interface SearchResolver{
 
 export interface SearchDelegator<T = unknown> {
   name?: SearchDelegatorName
-  search(data: SearchableData | null, user, userGroups, option): Promise<Result<T> & MetaData>
+  search(data: SearchableData | null, user, userGroups, option): Promise<Result<T> & ISearchResultMeta>
 }
 
 export type Result<T> = {
   data: T[]
 }
 
-export type MetaData = {
-  meta: {
-    [key:string]: any,
-    total: number,
-  }
-}
-
 export type SearchableData = {
   queryString: string
   terms: QueryTerms

+ 3 - 5
packages/app/src/server/service/search.ts

@@ -1,12 +1,12 @@
 import xss from 'xss';
 
 import { SearchDelegatorName } from '~/interfaces/named-query';
-import { IFormattedSearchResult } from '~/interfaces/search';
+import { IFormattedSearchResult, ISearchResultMeta } from '~/interfaces/search';
 import loggerFactory from '~/utils/logger';
 
 import NamedQuery from '../models/named-query';
 import {
-  SearchDelegator, SearchQueryParser, SearchResolver, ParsedQuery, Result, MetaData, SearchableData, QueryTerms,
+  SearchDelegator, SearchQueryParser, SearchResolver, ParsedQuery, Result, SearchableData, QueryTerms,
 } from '../interfaces/search';
 import ElasticsearchDelegator from './search-delegator/elasticsearch';
 import PrivateLegacyPagesDelegator from './search-delegator/private-legacy-pages';
@@ -348,7 +348,7 @@ class SearchService implements SearchQueryParser, SearchResolver {
   /**
    * formatting result
    */
-  async formatSearchResult(searchResult: Result<any> & MetaData, delegatorName): Promise<IFormattedSearchResult> {
+  async formatSearchResult(searchResult: Result<any> & ISearchResultMeta, delegatorName): Promise<IFormattedSearchResult> {
     if (!this.checkIsFormattable(searchResult, delegatorName)) {
       const data = searchResult.data.map((page) => {
         return {
@@ -359,7 +359,6 @@ class SearchService implements SearchQueryParser, SearchResolver {
 
       return {
         data,
-        totalCount: data.length,
         meta: searchResult.meta,
       };
     }
@@ -377,7 +376,6 @@ class SearchService implements SearchQueryParser, SearchResolver {
 
     // set meta data
     result.meta = searchResult.meta;
-    result.totalCount = findPageResult.totalCount;
 
     // set search result page data
     result.data = searchResult.data.map((data) => {