feat: init sms-server-cli SDK
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package smscli
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// ──────────────────────────────────────────────
|
||||
// 用户接口
|
||||
// ──────────────────────────────────────────────
|
||||
|
||||
// ListQuotas 获取当前用户的额度列表(分页)。
|
||||
// GET /api/sms/quota/list
|
||||
func (c *Client) ListQuotas(ctx context.Context, q PaginationQuery) (PaginationResult[SmsQuota], error) {
|
||||
params := paginationParams(q)
|
||||
return get[PaginationResult[SmsQuota]](c, ctx, "/api/sms/quota/list", buildQuery(params))
|
||||
}
|
||||
|
||||
// GetQuotaSummary 获取当前用户的额度汇总。
|
||||
// GET /api/sms/quota/summary
|
||||
func (c *Client) GetQuotaSummary(ctx context.Context) (QuotaSummary, error) {
|
||||
return get[QuotaSummary](c, ctx, "/api/sms/quota/summary", nil)
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────
|
||||
// 管理员接口
|
||||
// ──────────────────────────────────────────────
|
||||
|
||||
// AdminListQuotas 管理员获取额度列表,可按 UserID 筛选。
|
||||
// GET /api/sms/admin/quota/list
|
||||
func (c *Client) AdminListQuotas(ctx context.Context, q QuotaListQuery) (PaginationResult[SmsQuota], error) {
|
||||
params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{
|
||||
"user_id": q.UserID,
|
||||
})
|
||||
return get[PaginationResult[SmsQuota]](c, ctx, "/api/sms/admin/quota/list", buildQuery(params))
|
||||
}
|
||||
|
||||
// AdminGetQuotaSummary 管理员获取指定用户的额度汇总。
|
||||
// GET /api/sms/admin/quota/summary
|
||||
func (c *Client) AdminGetQuotaSummary(ctx context.Context, userID uint) (QuotaSummary, error) {
|
||||
q := buildQuery(map[string]interface{}{"user_id": userID})
|
||||
return get[QuotaSummary](c, ctx, "/api/sms/admin/quota/summary", q)
|
||||
}
|
||||
|
||||
// CreateQuota 管理员创建额度。
|
||||
// POST /api/sms/admin/quota
|
||||
func (c *Client) CreateQuota(ctx context.Context, req CreateQuotaReq) (SmsQuota, error) {
|
||||
return post[SmsQuota](c, ctx, "/api/sms/admin/quota", req)
|
||||
}
|
||||
|
||||
// UpdateQuota 管理员更新指定额度。
|
||||
// PUT /api/sms/admin/quota/:id
|
||||
func (c *Client) UpdateQuota(ctx context.Context, id uint, req UpdateQuotaReq) (SmsQuota, error) {
|
||||
return put[SmsQuota](c, ctx, fmt.Sprintf("/api/sms/admin/quota/%d", id), req)
|
||||
}
|
||||
|
||||
// DeleteQuota 管理员删除指定额度。
|
||||
// DELETE /api/sms/admin/quota/:id
|
||||
func (c *Client) DeleteQuota(ctx context.Context, id uint) error {
|
||||
_, err := del[any](c, ctx, fmt.Sprintf("/api/sms/admin/quota/%d", id))
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user