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 }