diff --git a/controllers/service.go b/controllers/service.go index cb468a3b..b498cbac 100644 --- a/controllers/service.go +++ b/controllers/service.go @@ -23,7 +23,6 @@ import ( "github.com/casbin/casdoor/object" "github.com/casbin/casdoor/util" - sender "github.com/casdoor/go-sms-sender" ) // SendEmail @@ -43,8 +42,8 @@ func (c *ApiController) SendEmail() { var emailForm struct { Title string `json:"title"` Content string `json:"content"` - Receivers []string `json:"receivers"` Sender string `json:"sender"` + Receivers []string `json:"receivers"` } err := json.Unmarshal(c.Ctx.Input.RequestBody, &emailForm) if err != nil { @@ -95,8 +94,8 @@ func (c *ApiController) SendSms() { } var smsForm struct { - Receivers []string `json:"receivers"` - Parameters map[string]string `json:"parameters"` + Content string `json:"content"` + Receivers []string `json:"receivers"` } err := json.Unmarshal(c.Ctx.Input.RequestBody, &smsForm) if err != nil { @@ -104,20 +103,6 @@ func (c *ApiController) SendSms() { return } - client, err := sender.NewSmsClient( - provider.Type, - provider.ClientId, - provider.ClientSecret, - provider.SignName, - provider.RegionId, - provider.TemplateCode, - provider.AppId, - ) - if err != nil { - c.ResponseError(err.Error()) - return - } - var invalidReceivers []string for _, receiver := range smsForm.Receivers { if !util.IsPhoneCnValid(receiver) { @@ -130,7 +115,7 @@ func (c *ApiController) SendSms() { return } - err = client.SendMessage(smsForm.Parameters, smsForm.Receivers...) + err = object.SendSms(provider, smsForm.Content, smsForm.Receivers...) if err != nil { c.ResponseError(err.Error()) return diff --git a/object/sms.go b/object/sms.go index 8d00a7f6..f810a6b4 100644 --- a/object/sms.go +++ b/object/sms.go @@ -16,19 +16,19 @@ package object import "github.com/casdoor/go-sms-sender" -func SendSms(provider *Provider, phone string, code string) error { +func SendSms(provider *Provider, content string, phoneNumbers ...string) error { client, err := go_sms_sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.RegionId, provider.TemplateCode, provider.AppId) if err != nil { return err } - param := map[string]string{} + params := map[string]string{} if provider.Type == go_sms_sender.TencentCloud { - param["0"] = code + params["0"] = content } else { - param["code"] = code + params["code"] = content } - err = client.SendMessage(param, phone) + err = client.SendMessage(params, phoneNumbers...) return err }