Files
rainyun_api_go_sdk/apis/product/panel_user.go
T
XingfenD 51b7e2f319 feat: migrate all remaining modules from rainyun-go-sdk
- domain(24), product(8), rbm(10), rca(21), rgs(38), ros(19),
  ssl(5), user(10), workorder(11), public remaining 5
- split nested response structs into reusable named types
- rgs reuses rcs request/response types
- fix source bugs: malformed paths, resp vs &resp, missing bodies
- register all 11 services in sdk.New
2026-08-05 23:09:53 +08:00

113 lines
3.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package product
import (
"fmt"
"github.com/XingfenD/rainyun_api_go_sdk/apis/common"
"github.com/XingfenD/rainyun_api_go_sdk/constant"
)
// 增减面板用户产品请求
type ModifyPanelUserProductRequests struct {
Action string `json:"action"` // 操作:add/del
ProductID int `json:"product_id"` // 产品ID
ProductType string `json:"product_type"` // 产品类型: rcs/rgs/ros/rbm 只支持这四种产品
Name string `json:"name"` // 子用户名
}
// 面板用户请求
type PanelUserRequest struct {
Name string `json:"name"`
Password string `json:"password"`
}
// 面板用户产品
type PanelUserProduct struct {
Name string `json:"name"` // 自用户名
ProductType string `json:"product_type"` // 产品类型: rcs/rgs/ros/rbm 只支持这四种产品
ProductID int `json:"product_id"` // 产品ID
}
// 面板用户记录
type PanelUserRecord struct {
Name string `json:"name"` // 面板用户名
Password string `json:"password"` // 面板用户密码
UserID int `json:"user_id"` // 你的UID
CreateDate int `json:"create_date"` // 创建时间
Products []PanelUserProduct `json:"products"` // 产品列表
}
// 面板用户列表
type PanelUserListData struct {
TotalRecords int `json:"TotalRecords"` // 面板用户总数
Records []PanelUserRecord `json:"Records"`
}
type GetPanelUserListRequest struct {
Options common.StandQueryParameters `json:"options"`
}
type GetPanelUserListResponse struct {
Code int `json:"code"`
Data PanelUserListData `json:"data"`
}
// 获取面板用户列表
func (s *ProductService) GetPanelUserList(req *GetPanelUserListRequest) (*GetPanelUserListResponse, error) {
path := "/product/panel_users/"
var resp GetPanelUserListResponse
querys, err := common.MarshalQueryParams(req)
if err != nil {
return nil, err
}
err = s.client.Do(constant.HTTPMethod_GET, path, querys, nil, &resp)
return &resp, err
}
// 增减面板用户产品
func (s *ProductService) ModifyPanelUserProduct(req *ModifyPanelUserProductRequests) (*common.BasicOperationResponse, error) {
path := "/product/panel_users/"
var resp common.BasicOperationResponse
err := s.client.Do(constant.HTTPMethod_PUT, path, nil, req, &resp)
return &resp, err
}
// 创建面板用户
//
// name: 子用户用户名
//
// pass: 子用户密码
func (s *ProductService) CreatePanelUser(name string, pass string) (*common.BasicOperationResponse, error) {
path := "/product/panel_users/"
var resp common.BasicOperationResponse
err := s.client.Do(constant.HTTPMethod_POST, path, nil, PanelUserRequest{Name: name, Password: pass}, &resp)
return &resp, err
}
// 面板用户改密
//
// name: 子用户用户名
//
// pass: 子用户新密码
func (s *ProductService) ChangePanelUserPassword(name string, pass string) (*common.BasicOperationResponse, error) {
path := "/product/panel_users/"
var resp common.BasicOperationResponse
err := s.client.Do(constant.HTTPMethod_PATCH, path, nil, PanelUserRequest{Name: name, Password: pass}, &resp)
return &resp, err
}
// 删除面板用户
//
// name: 子用户用户名
func (s *ProductService) DeletePanelUser(name string) (*common.BasicOperationResponse, error) {
path := fmt.Sprintf("/product/panel_users/%s", name)
var resp common.BasicOperationResponse
err := s.client.Do(constant.HTTPMethod_DELETE, path, nil, nil, &resp)
return &resp, err
}