Improve SendSms() API.

This commit is contained in:
Yang Luo 2021-09-05 11:10:27 +08:00
parent 089f4ff480
commit ef1195960e
2 changed files with 9 additions and 24 deletions

View File

@ -23,7 +23,6 @@ import (
"github.com/casbin/casdoor/object" "github.com/casbin/casdoor/object"
"github.com/casbin/casdoor/util" "github.com/casbin/casdoor/util"
sender "github.com/casdoor/go-sms-sender"
) )
// SendEmail // SendEmail
@ -43,8 +42,8 @@ func (c *ApiController) SendEmail() {
var emailForm struct { var emailForm struct {
Title string `json:"title"` Title string `json:"title"`
Content string `json:"content"` Content string `json:"content"`
Receivers []string `json:"receivers"`
Sender string `json:"sender"` Sender string `json:"sender"`
Receivers []string `json:"receivers"`
} }
err := json.Unmarshal(c.Ctx.Input.RequestBody, &emailForm) err := json.Unmarshal(c.Ctx.Input.RequestBody, &emailForm)
if err != nil { if err != nil {
@ -95,8 +94,8 @@ func (c *ApiController) SendSms() {
} }
var smsForm struct { var smsForm struct {
Receivers []string `json:"receivers"` Content string `json:"content"`
Parameters map[string]string `json:"parameters"` Receivers []string `json:"receivers"`
} }
err := json.Unmarshal(c.Ctx.Input.RequestBody, &smsForm) err := json.Unmarshal(c.Ctx.Input.RequestBody, &smsForm)
if err != nil { if err != nil {
@ -104,20 +103,6 @@ func (c *ApiController) SendSms() {
return 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 var invalidReceivers []string
for _, receiver := range smsForm.Receivers { for _, receiver := range smsForm.Receivers {
if !util.IsPhoneCnValid(receiver) { if !util.IsPhoneCnValid(receiver) {
@ -130,7 +115,7 @@ func (c *ApiController) SendSms() {
return return
} }
err = client.SendMessage(smsForm.Parameters, smsForm.Receivers...) err = object.SendSms(provider, smsForm.Content, smsForm.Receivers...)
if err != nil { if err != nil {
c.ResponseError(err.Error()) c.ResponseError(err.Error())
return return

View File

@ -16,19 +16,19 @@ package object
import "github.com/casdoor/go-sms-sender" 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) client, err := go_sms_sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.RegionId, provider.TemplateCode, provider.AppId)
if err != nil { if err != nil {
return err return err
} }
param := map[string]string{} params := map[string]string{}
if provider.Type == go_sms_sender.TencentCloud { if provider.Type == go_sms_sender.TencentCloud {
param["0"] = code params["0"] = content
} else { } else {
param["code"] = code params["code"] = content
} }
err = client.SendMessage(param, phone) err = client.SendMessage(params, phoneNumbers...)
return err return err
} }