!break: 获取消息方法更新: 支持 offset, 客户端协议破坏性变更参数为对象
This commit is contained in:
@@ -87,7 +87,11 @@ export default class ChatApi extends BaseApi {
|
||||
* @param page 頁面
|
||||
*/
|
||||
this.registerEvent("Chat.getMessageHistory", (args, { deviceId }) => {
|
||||
if (this.checkArgsMissing(args, ['token', 'target', 'page'])) return {
|
||||
if (this.checkArgsMissing(args, ['token', 'target'])) return {
|
||||
msg: "参数缺失",
|
||||
code: 400,
|
||||
}
|
||||
if (!args.page && !args.offset) return {
|
||||
msg: "参数缺失",
|
||||
code: 400,
|
||||
}
|
||||
@@ -112,7 +116,7 @@ export default class ChatApi extends BaseApi {
|
||||
code: 200,
|
||||
msg: "成功",
|
||||
data: {
|
||||
messages: MessagesManager.getInstanceForChat(chat).getMessagesWithPage(15, args.page as number),
|
||||
messages: MessagesManager.getInstanceForChat(chat)[args.page ? 'getMessagesWithPage' : 'getMessagesWithOffset'](null, (args.page ? args.page : args.offset) as number),
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
@@ -59,14 +59,14 @@ export default class MessagesManager {
|
||||
text
|
||||
})
|
||||
}
|
||||
getMessages(limit: number = 15, offset: number = 0) {
|
||||
const ls = MessagesManager.database.prepare(`SELECT * FROM ${this.getTableName()} ORDER BY id DESC LIMIT ? OFFSET ?;`).all(limit, offset) as unknown as MessageBean[]
|
||||
getMessagesWithOffset(limit: number | undefined | null, offset: number = 0) {
|
||||
const ls = MessagesManager.database.prepare(`SELECT * FROM ${this.getTableName()} ORDER BY id DESC LIMIT ? OFFSET ?;`).all(limit || 15, offset) as unknown as MessageBean[]
|
||||
return ls.map((v) => ({
|
||||
...v,
|
||||
chat_id: this.chat.bean.id,
|
||||
}))
|
||||
}
|
||||
getMessagesWithPage(limit: number = 15, page: number = 0) {
|
||||
return this.getMessages(limit, limit * page)
|
||||
getMessagesWithPage(limit: number | undefined | null, page: number = 0) {
|
||||
return this.getMessagesWithOffset(limit, (limit || 15) * page)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user