xybot/login/impl.go
2025-04-17 14:59:55 +08:00

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
}