69be4bcb82
Co-authored-by: Cursor <cursoragent@cursor.com>
96 lines
3.9 KiB
Go
96 lines
3.9 KiB
Go
package smscli
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
// ──────────────────────────────────────────────
|
|
// 用户接口
|
|
// ──────────────────────────────────────────────
|
|
|
|
// CreateUserToken 创建用户令牌。
|
|
// POST /api/sms/token
|
|
func (c *Client) CreateUserToken(ctx context.Context, req CreateTokenReq) (SmsUserToken, error) {
|
|
return post[SmsUserToken](c, ctx, "/api/sms/token", req)
|
|
}
|
|
|
|
// ListUserTokens 获取当前用户的令牌列表(分页)。
|
|
// GET /api/sms/token/list
|
|
func (c *Client) ListUserTokens(ctx context.Context, q PaginationQuery) (PaginationResult[SmsUserToken], error) {
|
|
params := paginationParams(q)
|
|
return get[PaginationResult[SmsUserToken]](c, ctx, "/api/sms/token/list", buildQuery(params))
|
|
}
|
|
|
|
// GetUserToken 获取指定令牌详情。
|
|
// GET /api/sms/token/:id
|
|
func (c *Client) GetUserToken(ctx context.Context, id uint) (SmsUserToken, error) {
|
|
return get[SmsUserToken](c, ctx, fmt.Sprintf("/api/sms/token/%d", id), nil)
|
|
}
|
|
|
|
// UpdateUserToken 更新指定令牌。
|
|
// PUT /api/sms/token/:id
|
|
func (c *Client) UpdateUserToken(ctx context.Context, id uint, req UpdateTokenReq) (SmsUserToken, error) {
|
|
return put[SmsUserToken](c, ctx, fmt.Sprintf("/api/sms/token/%d", id), req)
|
|
}
|
|
|
|
// DeleteUserToken 删除指定令牌。
|
|
// DELETE /api/sms/token/:id
|
|
func (c *Client) DeleteUserToken(ctx context.Context, id uint) error {
|
|
_, err := del[any](c, ctx, fmt.Sprintf("/api/sms/token/%d", id))
|
|
return err
|
|
}
|
|
|
|
// ToggleUserToken 切换令牌的启用/禁用状态。
|
|
// POST /api/sms/token/:id/toggle
|
|
func (c *Client) ToggleUserToken(ctx context.Context, id uint) error {
|
|
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/token/%d/toggle", id), nil)
|
|
return err
|
|
}
|
|
|
|
// ──────────────────────────────────────────────
|
|
// 管理员接口
|
|
// ──────────────────────────────────────────────
|
|
|
|
// AdminListUserTokens 管理员获取令牌列表,可按 UserID、Status 筛选。
|
|
// GET /api/sms/admin/token/list
|
|
func (c *Client) AdminListUserTokens(ctx context.Context, q TokenListQuery) (PaginationResult[SmsUserToken], error) {
|
|
params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{
|
|
"user_id": q.UserID,
|
|
"status": q.Status,
|
|
})
|
|
return get[PaginationResult[SmsUserToken]](c, ctx, "/api/sms/admin/token/list", buildQuery(params))
|
|
}
|
|
|
|
// AdminGetUserToken 管理员获取指定令牌详情。
|
|
// GET /api/sms/admin/token/:id
|
|
func (c *Client) AdminGetUserToken(ctx context.Context, id uint) (SmsUserToken, error) {
|
|
return get[SmsUserToken](c, ctx, fmt.Sprintf("/api/sms/admin/token/%d", id), nil)
|
|
}
|
|
|
|
// AdminCreateUserToken 管理员创建令牌(可指定 UserID)。
|
|
// POST /api/sms/admin/token
|
|
func (c *Client) AdminCreateUserToken(ctx context.Context, req AdminCreateTokenReq) (SmsUserToken, error) {
|
|
return post[SmsUserToken](c, ctx, "/api/sms/admin/token", req)
|
|
}
|
|
|
|
// AdminUpdateUserToken 管理员更新指定令牌。
|
|
// PUT /api/sms/admin/token/:id
|
|
func (c *Client) AdminUpdateUserToken(ctx context.Context, id uint, req UpdateTokenReq) (SmsUserToken, error) {
|
|
return put[SmsUserToken](c, ctx, fmt.Sprintf("/api/sms/admin/token/%d", id), req)
|
|
}
|
|
|
|
// AdminDeleteUserToken 管理员删除指定令牌。
|
|
// DELETE /api/sms/admin/token/:id
|
|
func (c *Client) AdminDeleteUserToken(ctx context.Context, id uint) error {
|
|
_, err := del[any](c, ctx, fmt.Sprintf("/api/sms/admin/token/%d", id))
|
|
return err
|
|
}
|
|
|
|
// AdminToggleUserToken 管理员切换令牌的启用/禁用状态。
|
|
// POST /api/sms/admin/token/:id/toggle
|
|
func (c *Client) AdminToggleUserToken(ctx context.Context, id uint) error {
|
|
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/token/%d/toggle", id), nil)
|
|
return err
|
|
}
|