feat: 查看自己所有的对话

This commit is contained in:
CrescentLeaf
2025-11-23 12:32:59 +08:00
parent 98132eb67c
commit 59191cc42e
9 changed files with 224 additions and 3 deletions

View File

@@ -267,6 +267,38 @@ export default class UserApi extends BaseApi {
}
}
})
// 獲取聯絡人列表
this.registerEvent("User.getMyAllChats", (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 list = user.getAllChatsList()
return {
msg: "成功",
code: 200,
data: {
all_chats: list.map((id) => {
const chat = Chat.findById(id)
return {
id,
type: chat?.bean.type,
title: chat?.getTitle(user) || "未知",
avatar_file_hash: chat?.getAvatarFileHash(user) ? chat?.getAvatarFileHash(user) : undefined
}
})
}
}
})
// 獲取最近对话列表
this.registerEvent("User.getMyRecentChats", (args, { deviceId }) => {
if (this.checkArgsMissing(args, ['token'])) return {

View File

@@ -15,6 +15,7 @@ import Chat from "./Chat.ts"
import ChatBean from "./ChatBean.ts"
import MapJson from "../MapJson.ts"
import DataWrongError from '../api/DataWrongError.ts'
import UserChatLinker from "./UserChatLinker.ts";
type UserBeanKey = keyof UserBean
@@ -155,6 +156,9 @@ export default class User {
return []
}
}
getAllChatsList() {
return UserChatLinker.getUserChats(this.bean.id)
}
getNickName(): string {
return this.bean.nickname
}