Browse Source

[CLOUDTRUST-2636] Add send email method

master
sispeo 5 years ago
committed by GitHub
parent
commit
08f13f71dd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      Gopkg.lock
  2. 2
      Gopkg.toml
  3. 20
      api/account.go

39
Gopkg.lock

@ -2,12 +2,12 @@
[[projects]]
digest = "1:2c7abdf1364ef3db046635ca5bb2cc26838ccb45a2b6608849e7b7fc6493423d"
digest = "1:c3f573bbf2ab26cdf2bdc8a4080e1a876927b7746992b36426f833567a569eae"
name = "github.com/cloudtrust/common-service"
packages = ["errors"]
pruneopts = ""
revision = "c9a387c12b76cd979ddf8be40168f3e19f643184"
version = "v2.2.1"
revision = "22a293b4b2de317dd0260d47c62b862101551597"
version = "v2.2.2"
[[projects]]
digest = "1:bb7f91ab4d1c44a3bb2651c613463c134165bda0282fca891a63b88d1b501997"
@ -114,16 +114,16 @@
version = "v1.0.5"
[[projects]]
digest = "1:9cc06d7468e429919ead45fc408b26838b4dfb12075f9756685ac6eae867b1a3"
digest = "1:83fd2513b9f6ae0997bf646db6b74e9e00131e31002116fda597175f25add42d"
name = "github.com/stretchr/testify"
packages = ["assert"]
pruneopts = ""
revision = "004e3cb72213e5e727e4e08f668ee6c8f27e5d32"
version = "v1.6.0"
revision = "f654a9112bbeac49ca2cd45bfbe11533c4666cf8"
version = "v1.6.1"
[[projects]]
branch = "master"
digest = "1:90e0a5569023a45d6f5ba62cf7b250b89a4310107e42c45b76481f518bb09cc7"
digest = "1:2b1ff27f17455187b412669f2aa359be51dc79661bd34cf8f54fa67e1ea106d0"
name = "golang.org/x/crypto"
packages = [
"ed25519",
@ -131,11 +131,11 @@
"pbkdf2",
]
pruneopts = ""
revision = "279210d13fedf5be6d476bad5df6a015042bb905"
revision = "ab33eee955e00ff7c973405b2780aca48d293014"
[[projects]]
branch = "master"
digest = "1:7254fd3f1a6e5ae98ab721ce6f3f09a79a59d3a1426e045fabc2548101e37333"
digest = "1:92cf07fb2067987a7b46e1f63aa50ccde3ee8a7315ffca3e4e8a3a147ac9a717"
name = "golang.org/x/net"
packages = [
"context",
@ -144,7 +144,7 @@
"publicsuffix",
]
pruneopts = ""
revision = "627f9648deb96c27737b83199d44bb5c1010cbcf"
revision = "ab34263943818b32f575efc978a3d24e80b04bd7"
[[projects]]
branch = "master"
@ -158,7 +158,7 @@
revision = "bf48bf16ab8d622ce64ec6ce98d2c98f916b6303"
[[projects]]
digest = "1:740b51a55815493a8d0f2b1e0d0ae48fe48953bf7eaf3fcc4198823bf67768c0"
digest = "1:fccda34e4c58111b1908d8d69bf8d57c41c8e2542bc18ec8cd38c4fa21057f71"
name = "golang.org/x/text"
packages = [
"collate",
@ -179,8 +179,8 @@
"unicode/rangetable",
]
pruneopts = ""
revision = "342b2e1fbaa52c93f31447ad2c6abc048c63e475"
version = "v0.3.2"
revision = "23ae387dee1f90d29a23c0e87ee0b46038fbed0e"
version = "v0.3.3"
[[projects]]
digest = "1:2724bc9a6f84121903b6e33edc295b8182a95bb36535244fe2477ae64ba17654"
@ -199,7 +199,7 @@
version = "v1.6.6"
[[projects]]
digest = "1:7579d802036911f3a087652830860739fcd8a03967ad5a3531e190aefe647f9d"
digest = "1:0d049ff01749ce1d6092c85cb90a02dfdb3b401939b13415b7e608f36bc8ecee"
name = "google.golang.org/protobuf"
packages = [
"encoding/prototext",
@ -212,12 +212,11 @@
"internal/encoding/tag",
"internal/encoding/text",
"internal/errors",
"internal/fieldnum",
"internal/fieldsort",
"internal/filedesc",
"internal/filetype",
"internal/flags",
"internal/genname",
"internal/genid",
"internal/impl",
"internal/mapsort",
"internal/pragma",
@ -231,8 +230,8 @@
"runtime/protoimpl",
]
pruneopts = ""
revision = "5c3dd7024aed895adfe053f26b5a479e991cbca9"
version = "v1.24.0"
revision = "3f7a61f89bb6813f89d981d1870ed68da0b3c3f1"
version = "v1.25.0"
[[projects]]
digest = "1:95fa5eae3b22887e8aea55ad4f93bc1374d586f7dd3504cf0010845ccc0a95a8"
@ -271,11 +270,11 @@
[[projects]]
branch = "v3"
digest = "1:4eec9bf48dd37d5c72af308fb8609bb61ed7c18dc2677848ff1da45edb1dbbfd"
digest = "1:2e9c4d6def1d36dcd17730e00c06b49a2e97ea5e1e639bcd24fa60fa43e33ad6"
name = "gopkg.in/yaml.v3"
packages = ["."]
pruneopts = ""
revision = "e3079894b1e86c57cd48ff0d67dfd45de276d131"
revision = "eeeca48fe7764f320e4870d231902bf9c1be2c08"
[solve-meta]
analyzer-name = "dep"

2
Gopkg.toml

@ -22,7 +22,7 @@
[[constraint]]
name = "github.com/cloudtrust/common-service"
version = "2.2.1"
version = "2.2.2"
[[constraint]]
name = "github.com/pkg/errors"

20
api/account.go

@ -2,14 +2,17 @@ package api
import (
"github.com/cloudtrust/keycloak-client"
"gopkg.in/h2non/gentleman.v2/plugin"
"gopkg.in/h2non/gentleman.v2/plugins/body"
"gopkg.in/h2non/gentleman.v2/plugins/headers"
"gopkg.in/h2non/gentleman.v2/plugins/query"
"gopkg.in/h2non/gentleman.v2/plugins/url"
)
const (
accountExtensionAPIPath = "/auth/realms/master/api/account/realms/:realm"
accountExecuteActionsEmail = accountExtensionAPIPath + "/execute-actions-email"
accountSendEmail = accountExtensionAPIPath + "/send-email"
accountCredentialsPath = accountExtensionAPIPath + "/credentials"
accountPasswordPath = accountCredentialsPath + "/password"
accountCredentialsRegistratorsPath = accountCredentialsPath + "/registrators"
@ -80,12 +83,25 @@ func (c *AccountClient) UpdateAccount(accessToken string, realm string, user key
return err
}
// DeleteAccount delete current user
// DeleteAccount deletes current user
func (c *AccountClient) DeleteAccount(accessToken string, realmName string) error {
return c.client.delete(accessToken, url.Path(accountExtensionAPIPath), url.Param("realm", realmName), hdrAcceptJSON)
}
// ExecuteActionsEmail send an email with required actions to the user
// ExecuteActionsEmail sends an email with required actions to the user
func (c *AccountClient) ExecuteActionsEmail(accessToken string, realmName string, actions []string) error {
return c.client.put(accessToken, url.Path(accountExecuteActionsEmail), url.Param("realm", realmName), body.JSON(actions))
}
// SendEmail sends an email
func (c *AccountClient) SendEmail(accessToken, realmName, template, subject string, recipient *string, attributes map[string]string) error {
var plugins []plugin.Plugin
plugins = append(plugins, url.Path(accountSendEmail), url.Param("realm", realmName))
plugins = append(plugins, query.Add("template", template), query.Add("subject", subject))
if recipient != nil && len(*recipient) >= 0 {
plugins = append(plugins, query.Add("recipient", *recipient))
}
plugins = append(plugins, body.JSON(attributes))
_, err := c.client.post(accessToken, nil, plugins...)
return err
}

Loading…
Cancel
Save