Files
rpc-client/pkg/rpc/user.go
2025-10-22 16:31:53 +08:00

63 lines
1.3 KiB
Go

package rpc
import "fmt"
// 用户相关RPC
type User struct{}
// 获取用户详情
func (u *User) GetDetail(userId uint32) (*UserDetail, error) {
body := map[string]any{
"user_id": userId,
"field_list": []string{"mobile", "email", "nickname", "qq", "status"},
}
result := &Result[UserDetail]{}
if err := GetRequest().Send("user.get_detail", body, result); err != nil {
return nil, err
}
if result.Code != 0 {
return nil, fmt.Errorf("%s", result.Message)
}
return &result.Data, nil
}
// 获取Websocket签名信息
func (s *User) GetWebsocketSignData(sign string) (*WebsocketSignData, error) {
body := map[string]any{
"sign": sign,
}
result := &Result[WebsocketSignData]{}
if err := GetRequest().Send("user.get_websocket_sign", body, result); err != nil {
return nil, err
}
if result.Code != 0 {
return nil, fmt.Errorf("%s", result.Message)
}
return &result.Data, nil
}
// 删除Websocket签名
func (s *User) DeleteWebsocketSign(sign string) error {
body := map[string]any{
"sign": sign,
}
result := &Result[WebsocketSignData]{}
if err := GetRequest().Send("user.get_websocket_sign", body, result); err != nil {
return err
}
if result.Code != 0 {
return fmt.Errorf("%s", result.Message)
}
return nil
}
var user *User
// 获取用户相关RPC
func GetUser() *User {
if user == nil {
user = &User{}
}
return user
}