From 58dba494a0450e09a104116e1c69a2281c908e74 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Wed, 4 Jan 2023 00:04:51 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=B8=8E=E5=AF=BC=E5=87=BA=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/packages/sdk/src/db/mongoose.ts | 2 +- server/packages/sdk/src/index.ts | 6 +++++- server/packages/sdk/src/structs/chat.ts | 15 +++++++++++++++ server/services/core/user/user.service.ts | 7 ++++++- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/server/packages/sdk/src/db/mongoose.ts b/server/packages/sdk/src/db/mongoose.ts index 02d9c77e..ec51ccee 100644 --- a/server/packages/sdk/src/db/mongoose.ts +++ b/server/packages/sdk/src/db/mongoose.ts @@ -1 +1 @@ -export { Types } from 'mongoose'; +export { Types, isValidObjectId } from 'mongoose'; diff --git a/server/packages/sdk/src/index.ts b/server/packages/sdk/src/index.ts index de2ea3cf..1e3c0af3 100644 --- a/server/packages/sdk/src/index.ts +++ b/server/packages/sdk/src/index.ts @@ -25,7 +25,11 @@ export { } from './services/lib/settings'; // struct -export type { MessageMetaStruct } from './structs/chat'; +export type { + MessageStruct, + MessageReactionStruct, + MessageMetaStruct, +} from './structs/chat'; export type { BuiltinEventMap } from './structs/events'; export type { GroupStruct, diff --git a/server/packages/sdk/src/structs/chat.ts b/server/packages/sdk/src/structs/chat.ts index 168ebd5f..907a1111 100644 --- a/server/packages/sdk/src/structs/chat.ts +++ b/server/packages/sdk/src/structs/chat.ts @@ -1,3 +1,18 @@ +export interface MessageReactionStruct { + name: string; + author?: string; +} + +export interface MessageStruct { + _id: string; + content: string; + author: string; + groupId?: string; + converseId: string; + hasRecall: boolean; + reactions: MessageReactionStruct[]; +} + export interface MessageMetaStruct { mentions?: string[]; reply?: { diff --git a/server/services/core/user/user.service.ts b/server/services/core/user/user.service.ts index de55df89..a3f9c7f6 100644 --- a/server/services/core/user/user.service.ts +++ b/server/services/core/user/user.service.ts @@ -17,16 +17,18 @@ import { Errors, DataNotFoundError, EntityError, + db, } from 'tailchat-server-sdk'; import { generateRandomNumStr, generateRandomStr, getEmailAddress, } from '../../../lib/utils'; -import { Types } from 'mongoose'; import type { TFunction } from 'i18next'; import _ from 'lodash'; +const { isValidObjectId, Types } = db; + /** * 用户服务 */ @@ -543,6 +545,9 @@ class UserService extends TcService { async getUserInfoList(ctx: PureContext<{ userIds: string[] }>) { const userIds = ctx.params.userIds; + if (userIds.some((userId) => !isValidObjectId(userId))) { + throw new EntityError('Include invalid userId'); + } const list = await Promise.all( userIds.map((userId) => ctx.call('user.getUserInfo', {