github.com/qiniu/go-sdk/v7@v7.27.0/sms/template.go (about)

     1  package sms
     2  
     3  import (
     4  	"fmt"
     5  	"net/url"
     6  )
     7  
     8  // Template 模板
     9  type Template struct {
    10  	ID           string       `json:"id"`
    11  	Name         string       `json:"name"`
    12  	Type         TemplateType `json:"type"`
    13  	Template     string       `json:"template"`
    14  	Description  string       `json:"description"`
    15  	AuditStatus  AuditStatus  `json:"audit_status"`
    16  	RejectReason string       `json:"reject_reason"`
    17  
    18  	UpdatedAt uint64 `json:"updated_at"`
    19  	CreatedAt uint64 `json:"created_at"`
    20  }
    21  
    22  // TemplatePagination 模板分页
    23  type TemplatePagination struct {
    24  	Page     int        `json:"page"`      // 页码,默认为 1
    25  	PageSize int        `json:"page_size"` // 分页大小,默认为 20
    26  	Total    int        `json:"total"`     // 总记录条数
    27  	Items    []Template `json:"items"`     // 模板
    28  }
    29  
    30  // TemplateRequest 创建模板请求参数
    31  type TemplateRequest struct {
    32  	UID         uint32       `json:"uid"`
    33  	Name        string       `json:"name"`
    34  	Type        TemplateType `json:"type"`
    35  	Template    string       `json:"template"`
    36  	Description string       `json:"description"`
    37  }
    38  
    39  // TemplateResponse 模板响应
    40  type TemplateResponse struct {
    41  	TemplateID string `json:"template_id"`
    42  }
    43  
    44  // CreateTemplate 创建模板
    45  func (m *Manager) CreateTemplate(args TemplateRequest) (ret TemplateResponse, err error) {
    46  	url := fmt.Sprintf("%s%s", Host, "/v1/template")
    47  	err = m.client.CallWithJSON(&ret, url, args)
    48  	return
    49  }
    50  
    51  // UpdateTemplate 更新模板
    52  func (m *Manager) UpdateTemplate(id string, args TemplateRequest) (err error) {
    53  	url := fmt.Sprintf("%s%s/%s", Host, "/v1/template", id)
    54  	_, err = m.client.PutWithJSON(url, args)
    55  	return
    56  }
    57  
    58  // QueryTemplateRequest 查询模板参数
    59  type QueryTemplateRequest struct {
    60  	AuditStatus AuditStatus `json:"audit_status"` // 审核状态
    61  	Page        int         `json:"page"`         // 页码,默认为 1
    62  	PageSize    int         `json:"page_size"`    // 分页大小,默认为 20
    63  }
    64  
    65  // QueryTemplate 查询模板
    66  func (m *Manager) QueryTemplate(args QueryTemplateRequest) (pagination TemplatePagination, err error) {
    67  	values := url.Values{}
    68  
    69  	if args.AuditStatus.IsValid() {
    70  		values.Set("audit_status", args.AuditStatus.String())
    71  	}
    72  
    73  	if args.Page > 0 {
    74  		values.Set("page", fmt.Sprintf("%d", args.Page))
    75  	}
    76  
    77  	if args.PageSize > 0 {
    78  		values.Set("page_size", fmt.Sprintf("%d", args.PageSize))
    79  	}
    80  
    81  	url := fmt.Sprintf("%s%s?%s", Host, "/v1/template", values.Encode())
    82  	err = m.client.GetCall(&pagination, url)
    83  	return
    84  }
    85  
    86  // DeleteTemplate 删除模板
    87  func (m *Manager) DeleteTemplate(id string) (err error) {
    88  	url := fmt.Sprintf("%s%s/%s", Host, "/v1/template", id)
    89  	_, err = m.client.Delete(url)
    90  	return
    91  }