142 lines
3.5 KiB
Go
142 lines
3.5 KiB
Go
package login
|
|
|
|
import (
|
|
"fmt"
|
|
"gitee.ltd/lxh/xybot/base"
|
|
)
|
|
|
|
// GetQRCode
|
|
// @description: 获取登录二维码
|
|
// @receiver s
|
|
// @param deviceId
|
|
// @param deviceName
|
|
// @return resp
|
|
// @return err
|
|
func (s service) GetQRCode(deviceId, deviceName string) (resp GetQRCodeResponse, err error) {
|
|
var result base.Response[GetQRCodeResponse]
|
|
|
|
_, err = s.client.R().
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"DeviceID": deviceId,
|
|
"DeviceName": deviceName,
|
|
}).Post("/GetQRCode")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
resp = result.Data
|
|
return
|
|
}
|
|
|
|
// AwakenLogin
|
|
// @description: 唤醒登录
|
|
// @receiver s
|
|
// @return resp
|
|
// @return err
|
|
func (s service) AwakenLogin() (resp AwakenLoginResponse, err error) {
|
|
var result base.Response[AwakenLoginResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/AwakenLogin")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
resp = result.Data
|
|
return
|
|
}
|
|
|
|
// CheckUuid
|
|
// @description: 检查登录二维码
|
|
// @receiver s
|
|
// @param uuid
|
|
// @return resp
|
|
// @return err
|
|
func (s service) CheckUuid(uuid string) (resp CheckUuidResponse, err error) {
|
|
var result base.Response[CheckUuidResponse]
|
|
_, err = s.client.R().
|
|
SetResult(&result).
|
|
SetBody(map[string]any{
|
|
"Uuid": uuid,
|
|
}).Post("/CheckUuid")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
resp = result.Data
|
|
return
|
|
}
|
|
|
|
// AutoHeartbeatStart
|
|
// @description: 启动自动心跳
|
|
// @receiver s
|
|
// @return err
|
|
func (s service) AutoHeartbeatStart() (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/AutoHeartbeatStart")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|
|
|
|
// AutoHeartbeatStatus
|
|
// @description: 获取自动心跳状态
|
|
// @receiver s
|
|
// @return running
|
|
// @return err
|
|
func (s service) AutoHeartbeatStatus() (running bool, err error) {
|
|
var result AutoHeartbeatStatusResponse
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/AutoHeartbeatStatus")
|
|
if err == nil {
|
|
if !result.Success {
|
|
err = fmt.Errorf("[%d] %s", result.Code, result.Message)
|
|
return
|
|
}
|
|
running = result.Running
|
|
}
|
|
return
|
|
}
|
|
|
|
// AutoHeartbeatStop
|
|
// @description: 停止自动心跳
|
|
// @receiver s
|
|
// @return err
|
|
func (s service) AutoHeartbeatStop() (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/AutoHeartbeatStop")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|
|
|
|
// Heartbeat
|
|
// @description: 手动发起心跳
|
|
// @receiver s
|
|
// @return err
|
|
func (s service) Heartbeat() (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/Heartbeat")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|
|
|
|
// GetCachedInfo
|
|
// @description: 获取登录缓存信息
|
|
// @receiver s
|
|
// @return resp
|
|
// @return err
|
|
func (s service) GetCachedInfo() (resp GetCachedInfoResponse, err error) {
|
|
var result base.Response[GetCachedInfoResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/GetCachedInfo")
|
|
if err = result.CheckError(err); err != nil {
|
|
return
|
|
}
|
|
resp = result.Data
|
|
return
|
|
}
|
|
|
|
// Logout
|
|
// @description: 退出登录
|
|
// @receiver s
|
|
// @return err
|
|
func (s service) Logout() (err error) {
|
|
var result base.Response[base.EmptyResponse]
|
|
_, err = s.client.R().SetResult(&result).SetBody(map[string]any{"Wxid": s.wxId}).Post("/Logout")
|
|
err = result.CheckError(err)
|
|
return
|
|
}
|