feat: 全新的客户端协议库!
This commit is contained in:
66
client-protocol/JoinRequest.ts
Normal file
66
client-protocol/JoinRequest.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import BaseClientObject from "./BaseClientObject.ts"
|
||||
import JoinRequestBean from "./bean/JoinRequestBean.ts"
|
||||
import CallbackError from "./CallbackError.ts"
|
||||
import LingChairClient from "./LingChairClient.ts"
|
||||
import JoinRequestAction from "./type/JoinRequestAction.ts"
|
||||
|
||||
export default class JoinRequest extends BaseClientObject {
|
||||
declare bean: JoinRequestBean
|
||||
declare chat_id: string
|
||||
constructor(client: LingChairClient, bean: JoinRequestBean, chat_id: string) {
|
||||
super(client)
|
||||
this.bean = bean
|
||||
this.chat_id = chat_id
|
||||
}
|
||||
/*
|
||||
* ================================================
|
||||
* 操作
|
||||
* ================================================
|
||||
*/
|
||||
async accept() {
|
||||
return await this.process('accept')
|
||||
}
|
||||
async acceptOrThrow() {
|
||||
return await this.processOrThrow('accept')
|
||||
}
|
||||
async remove() {
|
||||
return await this.process('remove')
|
||||
}
|
||||
async removOrThrow() {
|
||||
return await this.processOrThrow('remove')
|
||||
}
|
||||
async process(action: JoinRequestAction) {
|
||||
try {
|
||||
await this.processOrThrow(action)
|
||||
return true
|
||||
} catch (_) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
async processOrThrow(action: JoinRequestAction) {
|
||||
const re = await this.client.invoke("Chat.processJoinRequest", {
|
||||
token: this.client.access_token,
|
||||
chat_id: this.chat_id,
|
||||
user_id: this.bean.user_id,
|
||||
action,
|
||||
})
|
||||
if (re.code != 200) throw new CallbackError(re)
|
||||
}
|
||||
/*
|
||||
* ================================================
|
||||
* 基本 Bean
|
||||
* ================================================
|
||||
*/
|
||||
getAvatarFileHash() {
|
||||
return this.bean.avatar_file_hash
|
||||
}
|
||||
getUserId() {
|
||||
return this.bean.user_id
|
||||
}
|
||||
getNickName() {
|
||||
return this.bean.title
|
||||
}
|
||||
getReason() {
|
||||
return this.bean.reason
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user