Files
2026-06-08 15:45:25 +08:00

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
}