client/email.go (52 lines of code) (raw):
package client
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type EmailSettings struct {
Enabled bool `json:"enabled"`
Host string `json:"host"`
Port int `json:"port"`
From string `json:"from"`
Login string `json:"login"`
Password *string `json:"password"`
SecureConnection string `json:"secureConnection"`
}
func (c *Client) GetEmailSettings() (*EmailSettings, error) {
req, err := http.NewRequest("GET", fmt.Sprintf("%s/email/rest", c.AppURL), nil)
if err != nil {
return nil, err
}
body, err := c.doRequest(req)
if err != nil {
return nil, err
}
actual := EmailSettings{}
err = json.Unmarshal(body, &actual)
if err != nil {
return nil, err
}
return &actual, nil
}
func (c *Client) SetEmailSettings(settings EmailSettings) (*EmailSettings, error) {
rb, err := json.Marshal(settings)
if err != nil {
return nil, err
}
req, err := http.NewRequest("POST", fmt.Sprintf("%s/email/rest", c.AppURL), bytes.NewReader(rb))
if err != nil {
return nil, err
}
body, err := c.doRequest(req)
if err != nil {
return nil, err
}
actual := EmailSettings{}
err = json.Unmarshal(body, &actual)
if err != nil {
return nil, err
}
return &actual, nil
}