f004408ca0
Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
1.5 KiB
Go
42 lines
1.5 KiB
Go
package smscli
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
// 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
|
|
}
|