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

refactor: update ThreadRelationModel to use PaginateModel and improve type definitions in getRecentThreads route

Shun Miyazawa 10 месяцев назад
Родитель
Сommit
57bb05e90f

+ 2 - 2
apps/app/src/features/openai/server/models/thread-relation.ts

@@ -1,5 +1,5 @@
 import { addDays } from 'date-fns';
-import { type Model, type Document, Schema } from 'mongoose';
+import { type Document, Schema, type PaginateModel } from 'mongoose';
 import mongoosePaginate from 'mongoose-paginate-v2';
 
 import { getOrCreateModel } from '~/server/util/mongoose-utils';
@@ -17,7 +17,7 @@ export interface ThreadRelationDocument extends IThreadRelation, Document {
   updateThreadExpiration(): Promise<void>;
 }
 
-interface ThreadRelationModel extends Model<ThreadRelationDocument> {
+interface ThreadRelationModel extends PaginateModel<ThreadRelationDocument> {
   getExpiredThreadRelations(limit?: number): Promise<ThreadRelationDocument[] | undefined>;
 }
 

+ 3 - 2
apps/app/src/features/openai/server/routes/get-recent-threads.ts

@@ -2,7 +2,7 @@ import { type IUserHasId } from '@growi/core';
 import { ErrorV3 } from '@growi/core/dist/models';
 import type { Request, RequestHandler } from 'express';
 import { type ValidationChain, query } from 'express-validator';
-
+import type { PaginateResult } from 'mongoose';
 
 import type Crowi from '~/server/crowi';
 import { accessTokenParser } from '~/server/middlewares/access-token-parser';
@@ -10,6 +10,7 @@ import { apiV3FormValidator } from '~/server/middlewares/apiv3-form-validator';
 import type { ApiV3Response } from '~/server/routes/apiv3/interfaces/apiv3-response';
 import loggerFactory from '~/utils/logger';
 
+import type { ThreadRelationDocument } from '../models/thread-relation';
 import ThreadRelationModel from '../models/thread-relation';
 import { getOpenaiService } from '../services/openai';
 
@@ -49,7 +50,7 @@ export const getRecentThreadsFactory: GetRecentThreadsFactory = (crowi) => {
       }
 
       try {
-        const paginateResult = await (ThreadRelationModel as any).paginate(
+        const paginateResult: PaginateResult<ThreadRelationDocument> = await ThreadRelationModel.paginate(
           { userId: req.user._id },
           {
             page: req.query.page ?? 1,