67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
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
|
|
}
|
|
}
|