feat: add template support for Custom HTTP SMS provider (#2662)

This commit is contained in:
Dmitri Aleksandrov
2024-02-01 12:50:22 +03:00
committed by GitHub
parent ce0d45a70b
commit 0918757e85
3 changed files with 10 additions and 4 deletions

View File

@ -27,7 +27,7 @@ func getSmsClient(provider *Provider) (sender.SmsClient, error) {
if provider.Type == sender.HuaweiCloud || provider.Type == sender.AzureACS { if provider.Type == sender.HuaweiCloud || provider.Type == sender.AzureACS {
client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.ProviderUrl, provider.AppId) client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.ProviderUrl, provider.AppId)
} else if provider.Type == "Custom HTTP SMS" { } else if provider.Type == "Custom HTTP SMS" {
client, err = newHttpSmsClient(provider.Endpoint, provider.Method, provider.Title) client, err = newHttpSmsClient(provider.Endpoint, provider.Method, provider.Title, provider.TemplateCode)
} else { } else {
client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.AppId) client, err = sender.NewSmsClient(provider.Type, provider.ClientId, provider.ClientSecret, provider.SignName, provider.TemplateCode, provider.AppId)
} }

View File

@ -27,20 +27,26 @@ type HttpSmsClient struct {
endpoint string endpoint string
method string method string
paramName string paramName string
template string
} }
func newHttpSmsClient(endpoint string, method string, paramName string) (*HttpSmsClient, error) { func newHttpSmsClient(endpoint, method, paramName, template string) (*HttpSmsClient, error) {
if template == "" {
template = "%s"
}
client := &HttpSmsClient{ client := &HttpSmsClient{
endpoint: endpoint, endpoint: endpoint,
method: method, method: method,
paramName: paramName, paramName: paramName,
template: template,
} }
return client, nil return client, nil
} }
func (c *HttpSmsClient) SendMessage(param map[string]string, targetPhoneNumber ...string) error { func (c *HttpSmsClient) SendMessage(param map[string]string, targetPhoneNumber ...string) error {
phoneNumber := targetPhoneNumber[0] phoneNumber := targetPhoneNumber[0]
content := param["code"] code := param["code"]
content := fmt.Sprintf(c.template, code)
var req *http.Request var req *http.Request
var err error var err error

View File

@ -1041,7 +1041,7 @@ class ProviderEditPage extends React.Component {
</Row> </Row>
) )
} }
{["Custom HTTP SMS", "Infobip SMS"].includes(this.state.provider.type) ? {["Infobip SMS"].includes(this.state.provider.type) ?
null : null :
(<Row style={{marginTop: "20px"}} > (<Row style={{marginTop: "20px"}} >
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}> <Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>