UNPKG

wechaty-puppet-padplus

Version:
79 lines (70 loc) 1.96 kB
import { RequestClient } from './request' import { log } from '../../config' import { ApiType } from '../../server-manager/proto-ts/PadPlusServer_pb' import { LogoutGrpcResponse } from '../../schemas' const PRE = 'USER' export class PadplusUser { private requestClient: RequestClient // private token: string constructor (requestClient: RequestClient) { this.requestClient = requestClient } // init public async initInstance () { log.silly(PRE, `initInstance()`) await this.requestClient.request({ apiType: ApiType.INIT, }) } // grpc server reconnect public async reconnect () { log.silly(PRE, `reconnect()`) await this.requestClient.request({ apiType: ApiType.RECONNECT, }) } // logout WeChat public async logout (wxid: string): Promise<boolean> { log.silly(PRE, `logout()`) const data = { wxid, } const res = await this.requestClient.request({ apiType: ApiType.LOGOUT, data, }) if (!res) { log.error(`can not get result for logout`) return false } else { const resultStr = res.getData() if (resultStr) { const result: LogoutGrpcResponse = JSON.parse(resultStr) if (result && result.code === 200 && result.mqType === 1100) { return true } else { return false } } else { return false } } } // get qrcode for login WeChat public getWeChatQRCode = async (data?: {uin: string, wxid: string}) => { if (data) { const res = await this.requestClient.request({ apiType: ApiType.GET_QRCODE, data, }) log.silly(`Get qrcode with user info, res : ${JSON.stringify(res)}`) return res } else { const res = await this.requestClient.request({ apiType: ApiType.GET_QRCODE, }) log.silly(`Get qrcode without user info, res : ${JSON.stringify(res)}`) return res } } }