github.com/infraboard/keyauth@v0.8.1/apps/system/notify/sms.go (about)

     1  package notify
     2  
     3  import "strings"
     4  
     5  // SMSSender 短信投递
     6  type SMSSender interface {
     7  	Send(*SendSMSRequest) error
     8  }
     9  
    10  // NewSendSMSRequest todo
    11  func NewSendSMSRequest() *SendSMSRequest {
    12  	return &SendSMSRequest{}
    13  }
    14  
    15  // SendSMSRequest todo
    16  type SendSMSRequest struct {
    17  	TemplateID     string   `json:"template_id"`
    18  	ParamSet       []string `json:"param_set"`
    19  	PhoneNumberSet []string `json:"phone_number_set" validate:"required"`
    20  }
    21  
    22  // AddParams todo
    23  func (req *SendSMSRequest) AddParams(params ...string) {
    24  	req.ParamSet = append(req.ParamSet, params...)
    25  }
    26  
    27  // AddPhone todo
    28  func (req *SendSMSRequest) AddPhone(params ...string) {
    29  	req.PhoneNumberSet = append(req.PhoneNumberSet, params...)
    30  }
    31  
    32  // Validate todo
    33  func (req *SendSMSRequest) Validate() error {
    34  	return validate.Struct(req)
    35  }
    36  
    37  // InjectDefaultIsoCode todo
    38  func (req *SendSMSRequest) InjectDefaultIsoCode() {
    39  	for i, number := range req.PhoneNumberSet {
    40  		if !strings.HasPrefix(number, "+") {
    41  			req.PhoneNumberSet[i] = "+86" + number
    42  		}
    43  	}
    44  }