From 51af090d3899d51b5bf6d6201de2cfff93efe15d Mon Sep 17 00:00:00 2001 From: Love98 <77888749+love98ooo@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:05:56 +0800 Subject: [PATCH] feat: add SendEmailByProvider and SendSmsByProvider APIs, add back Application.CertObj (#129) * feat: support send email and sms by specific provider * feat: remove sms-test and add cert obj to application * feat: remove email provider test --- casdoorsdk/application.go | 3 ++- casdoorsdk/email.go | 22 ++++++++++++++++++++++ casdoorsdk/email_global.go | 4 ++++ casdoorsdk/sms.go | 20 ++++++++++++++++++++ casdoorsdk/sms_global.go | 4 ++++ casdoorsdk/sms_test.go | 4 ++-- 6 files changed, 54 insertions(+), 3 deletions(-) diff --git a/casdoorsdk/application.go b/casdoorsdk/application.go index 796b2a4..5346c05 100644 --- a/casdoorsdk/application.go +++ b/casdoorsdk/application.go @@ -127,8 +127,9 @@ type Application struct { FailedSigninLimit int `json:"failedSigninLimit"` FailedSigninFrozenTime int `json:"failedSigninFrozenTime"` -} + CertObj *Cert `xorm:"-" json:"certObj"` +} func (c *Client) GetApplications() ([]*Application, error) { queryMap := map[string]string{ diff --git a/casdoorsdk/email.go b/casdoorsdk/email.go index ea4c539..8c2e958 100644 --- a/casdoorsdk/email.go +++ b/casdoorsdk/email.go @@ -41,3 +41,25 @@ func (c *Client) SendEmail(title string, content string, sender string, receiver } return nil } + +func (c *Client) SendEmailByProvider(title string, content string, sender string, provider string, receivers ...string) error { + form := emailForm{ + Title: title, + Content: content, + Sender: sender, + Receivers: receivers, + } + postBytes, err := json.Marshal(form) + if err != nil { + return err + } + + providerMap := map[string]string{ + "provider": provider, + } + _, err = c.DoPost("send-email", providerMap, postBytes, false, false) + if err != nil { + return err + } + return nil +} diff --git a/casdoorsdk/email_global.go b/casdoorsdk/email_global.go index c5f0cad..dd2c892 100644 --- a/casdoorsdk/email_global.go +++ b/casdoorsdk/email_global.go @@ -17,3 +17,7 @@ package casdoorsdk func SendEmail(title string, content string, sender string, receivers ...string) error { return globalClient.SendEmail(title, content, sender, receivers...) } + +func SendEmailByProvider(title string, content string, sender string, provider string, receivers ...string) error { + return globalClient.SendEmailByProvider(title, content, sender, provider, receivers...) +} diff --git a/casdoorsdk/sms.go b/casdoorsdk/sms.go index 90f5a03..34a8a92 100644 --- a/casdoorsdk/sms.go +++ b/casdoorsdk/sms.go @@ -37,3 +37,23 @@ func (c *Client) SendSms(content string, receivers ...string) error { } return nil } + +func (c *Client) SendSmsByProvider(content string, provider string, receivers ...string) error { + form := smsForm{ + Content: content, + Receivers: receivers, + } + postBytes, err := json.Marshal(form) + if err != nil { + return err + } + + providerMap := map[string]string{ + "provider": provider, + } + _, err = c.DoPost("send-sms", providerMap, postBytes, false, false) + if err != nil { + return err + } + return nil +} diff --git a/casdoorsdk/sms_global.go b/casdoorsdk/sms_global.go index 0e15f64..162d093 100644 --- a/casdoorsdk/sms_global.go +++ b/casdoorsdk/sms_global.go @@ -17,3 +17,7 @@ package casdoorsdk func SendSms(content string, receivers ...string) error { return globalClient.SendSms(content, receivers...) } + +func SendSmsByProvider(content string, provider string, receivers ...string) error { + return globalClient.SendSmsByProvider(content, provider, receivers...) +} diff --git a/casdoorsdk/sms_test.go b/casdoorsdk/sms_test.go index 717d280..c4429d1 100644 --- a/casdoorsdk/sms_test.go +++ b/casdoorsdk/sms_test.go @@ -22,8 +22,8 @@ func TestSms(t *testing.T) { InitConfig(TestCasdoorEndpoint, TestClientId, TestClientSecret, TestJwtPublicKey, TestCasdoorOrganization, TestCasdoorApplication) sms := &smsForm{ - Content: "casdoor", - Receivers: []string{"+8613854673829", "+441932567890"}, + Content: "casdoor", + Receivers: []string{"+8613854673829", "+441932567890"}, } err := SendSms(sms.Content, sms.Receivers...) if err != nil {