Răsfoiți Sursa

Improved type & use utility

Taichi Masuyama 4 ani în urmă
părinte
comite
5089864867

+ 2 - 1
packages/app/src/components/SearchPage.jsx

@@ -14,6 +14,7 @@ import SearchControl from './SearchPage/SearchControl';
 import { CheckboxType, SORT_AXIS, SORT_ORDER } from '~/interfaces/search';
 import PageDeleteModal from './PageDeleteModal';
 import { useIsGuestUser } from '~/stores/context';
+import { apiv3Get } from '~/client/util/apiv3-client';
 
 export const specificPathNames = {
   user: '/user',
@@ -142,7 +143,7 @@ class SearchPage extends React.Component {
   }
 
   async fetchShortBodiesMap(pageIds) {
-    const res = await this.props.appContainer.apiv3Get('/page-listing/short-bodies', { pageIds });
+    const res = await apiv3Get('/page-listing/short-bodies', { pageIds });
     this.setState({ shortBodiesMap: res.data.shortBodiesMap });
   }
 

+ 11 - 3
packages/app/src/server/models/page.ts

@@ -1,7 +1,7 @@
 /* eslint-disable @typescript-eslint/no-explicit-any */
 
 import mongoose, {
-  Schema, Model, Document,
+  Schema, Model, Document, AnyObject,
 } from 'mongoose';
 import mongoosePaginate from 'mongoose-paginate-v2';
 import uniqueValidator from 'mongoose-unique-validator';
@@ -363,9 +363,13 @@ export default (crowi: Crowi): any => {
 /*
  * Aggregation utilities
  */
+type PipelineStageMatch = {
+  $match: AnyObject
+};
+
 export const generateGrantConditions = async(
     user, _userGroups, showAnyoneKnowsLink = false, showPagesRestrictedByOwner = false, showPagesRestrictedByGroup = false,
-): Promise<{[key:string]: any | number | null}[]> => {
+): Promise<PipelineStageMatch> => {
   let userGroups = _userGroups;
   if (user != null && userGroups == null) {
     const UserGroupRelation: any = mongoose.model('UserGroupRelation');
@@ -405,5 +409,9 @@ export const generateGrantConditions = async(
     );
   }
 
-  return grantConditions;
+  return {
+    $match: {
+      $or: grantConditions,
+    },
+  };
 };