From 89db6591a0eb9f358295f15a88d6877eb5628f03 Mon Sep 17 00:00:00 2001 From: CrescentLeaf Date: Sat, 4 Oct 2025 14:13:06 +0800 Subject: [PATCH] feat(api): User.getMyRecentChats --- server/api/UserApi.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/server/api/UserApi.ts b/server/api/UserApi.ts index cd9b401..c1bd36c 100644 --- a/server/api/UserApi.ts +++ b/server/api/UserApi.ts @@ -192,6 +192,38 @@ export default class UserApi extends BaseApi { } } }) + // 獲取最近对话列表 + this.registerEvent("User.getMyRecentChats", (args, { deviceId }) => { + if (this.checkArgsMissing(args, ['token'])) return { + msg: "參數缺失", + code: 400, + } + + const token = TokenManager.decode(args.token as string) + if (!this.checkToken(token, deviceId)) return { + code: 401, + msg: "令牌無效", + } + + const user = User.findById(token.author) as User + const recentChats = user.getRecentChats() + + return { + msg: "成功", + code: 200, + data: { + recent_chats: recentChats.forEach((content: string, chatId: string) => { + const chat = Chat.findById(chatId) + return { + content, + id: chatId, + title: chat?.getTitle(user) || "未知", + avatar: chat?.getAvatarFileHash(user) ? "uploaded_files/" + chat?.getAvatarFileHash(user) : undefined + } + }) + } + } + }) // 獲取聯絡人列表 this.registerEvent("User.getMyContacts", (args, { deviceId }) => { if (this.checkArgsMissing(args, ['token'])) return {