feat: init sms-server-cli SDK
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+109
@@ -0,0 +1,109 @@
|
||||
package smscli
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// ──────────────────────────────────────────────
|
||||
// 用户接口
|
||||
// ──────────────────────────────────────────────
|
||||
|
||||
// CreateSignature 创建短信签名。
|
||||
// POST /api/sms/signature
|
||||
func (c *Client) CreateSignature(ctx context.Context, req CreateSignatureReq) (SmsSignature, error) {
|
||||
return post[SmsSignature](c, ctx, "/api/sms/signature", req)
|
||||
}
|
||||
|
||||
// ListSignatures 获取当前用户的签名列表(分页)。
|
||||
// GET /api/sms/signature/list
|
||||
func (c *Client) ListSignatures(ctx context.Context, q PaginationQuery) (PaginationResult[SmsSignature], error) {
|
||||
params := paginationParams(q)
|
||||
return get[PaginationResult[SmsSignature]](c, ctx, "/api/sms/signature/list", buildQuery(params))
|
||||
}
|
||||
|
||||
// GetSignature 获取指定签名详情。
|
||||
// GET /api/sms/signature/:id
|
||||
func (c *Client) GetSignature(ctx context.Context, id uint) (SmsSignature, error) {
|
||||
return get[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id), nil)
|
||||
}
|
||||
|
||||
// UpdateSignature 更新指定签名。
|
||||
// PUT /api/sms/signature/:id
|
||||
func (c *Client) UpdateSignature(ctx context.Context, id uint, req UpdateSignatureReq) (SmsSignature, error) {
|
||||
return put[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id), req)
|
||||
}
|
||||
|
||||
// DeleteSignature 删除指定签名。
|
||||
// DELETE /api/sms/signature/:id
|
||||
func (c *Client) DeleteSignature(ctx context.Context, id uint) error {
|
||||
_, err := del[any](c, ctx, fmt.Sprintf("/api/sms/signature/%d", id))
|
||||
return err
|
||||
}
|
||||
|
||||
// SubmitSignature 提交签名进入审核。
|
||||
// POST /api/sms/signature/:id/submit
|
||||
func (c *Client) SubmitSignature(ctx context.Context, id uint) error {
|
||||
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/signature/%d/submit", id), nil)
|
||||
return err
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────
|
||||
// 管理员接口
|
||||
// ──────────────────────────────────────────────
|
||||
|
||||
// AdminListSignatures 管理员获取签名列表,可按 UserID、Status 筛选。
|
||||
// GET /api/sms/admin/signature/list
|
||||
func (c *Client) AdminListSignatures(ctx context.Context, q SignatureListQuery) (PaginationResult[SmsSignature], error) {
|
||||
params := mergeParams(paginationParams(q.PaginationQuery), map[string]interface{}{
|
||||
"user_id": q.UserID,
|
||||
"status": q.Status,
|
||||
})
|
||||
return get[PaginationResult[SmsSignature]](c, ctx, "/api/sms/admin/signature/list", buildQuery(params))
|
||||
}
|
||||
|
||||
// AdminGetSignature 管理员获取指定签名详情。
|
||||
// GET /api/sms/admin/signature/:id
|
||||
func (c *Client) AdminGetSignature(ctx context.Context, id uint) (SmsSignature, error) {
|
||||
return get[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id), nil)
|
||||
}
|
||||
|
||||
// AdminCreateSignature 管理员创建签名(可指定 UserID)。
|
||||
// POST /api/sms/admin/signature
|
||||
func (c *Client) AdminCreateSignature(ctx context.Context, req AdminCreateSignatureReq) (SmsSignature, error) {
|
||||
return post[SmsSignature](c, ctx, "/api/sms/admin/signature", req)
|
||||
}
|
||||
|
||||
// AdminUpdateSignature 管理员更新指定签名。
|
||||
// PUT /api/sms/admin/signature/:id
|
||||
func (c *Client) AdminUpdateSignature(ctx context.Context, id uint, req AdminUpdateSignatureReq) (SmsSignature, error) {
|
||||
return put[SmsSignature](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id), req)
|
||||
}
|
||||
|
||||
// AdminDeleteSignature 管理员删除指定签名。
|
||||
// DELETE /api/sms/admin/signature/:id
|
||||
func (c *Client) AdminDeleteSignature(ctx context.Context, id uint) error {
|
||||
_, err := del[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d", id))
|
||||
return err
|
||||
}
|
||||
|
||||
// AdminSubmitSignature 管理员提交签名进入审核。
|
||||
// POST /api/sms/admin/signature/:id/submit
|
||||
func (c *Client) AdminSubmitSignature(ctx context.Context, id uint) error {
|
||||
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/submit", id), nil)
|
||||
return err
|
||||
}
|
||||
|
||||
// ApproveSignature 管理员审核通过签名。
|
||||
// POST /api/sms/admin/signature/:id/approve
|
||||
func (c *Client) ApproveSignature(ctx context.Context, id uint) error {
|
||||
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/approve", id), nil)
|
||||
return err
|
||||
}
|
||||
|
||||
// RejectSignature 管理员驳回签名,需提供驳回原因。
|
||||
// POST /api/sms/admin/signature/:id/reject
|
||||
func (c *Client) RejectSignature(ctx context.Context, id uint, req RejectReq) error {
|
||||
_, err := post[any](c, ctx, fmt.Sprintf("/api/sms/admin/signature/%d/reject", id), req)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user