Add DisableServer option

This commit is contained in:
Wim 2015-10-28 17:18:05 +01:00
parent 5282cdaccd
commit 90f276863b
1 changed files with 7 additions and 5 deletions

View File

@ -40,7 +40,7 @@ type IMessage struct {
// Client for Mattermost. // Client for Mattermost.
type Client struct { type Client struct {
url string Url string // URL for incoming webhooks on mattermost.
In chan IMessage In chan IMessage
Out chan OMessage Out chan OMessage
httpclient *http.Client httpclient *http.Client
@ -52,11 +52,12 @@ type Config struct {
Port int // Port to listen on. Port int // Port to listen on.
Token string // Only allow this token from Mattermost. (Allow everything when empty) Token string // Only allow this token from Mattermost. (Allow everything when empty)
InsecureSkipVerify bool // disable certificate checking InsecureSkipVerify bool // disable certificate checking
DisableServer bool // Do not start server for outgoing webhooks from Mattermost.
} }
// New Mattermost client. // New Mattermost client.
func New(url string, config Config) *Client { func New(url string, config Config) *Client {
c := &Client{url: url, In: make(chan IMessage), Out: make(chan OMessage), Config: config} c := &Client{Url: url, In: make(chan IMessage), Out: make(chan OMessage), Config: config}
if c.Port == 0 { if c.Port == 0 {
c.Port = 9999 c.Port = 9999
} }
@ -64,8 +65,9 @@ func New(url string, config Config) *Client {
TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify}, TLSClientConfig: &tls.Config{InsecureSkipVerify: config.InsecureSkipVerify},
} }
c.httpclient = &http.Client{Transport: tr} c.httpclient = &http.Client{Transport: tr}
if !c.DisableServer {
go c.StartServer() go c.StartServer()
}
return c return c
} }
@ -132,7 +134,7 @@ func (c *Client) Send(msg OMessage) error {
if err != nil { if err != nil {
return err return err
} }
resp, err := c.httpclient.Post(c.url, "application/json", bytes.NewReader(buf)) resp, err := c.httpclient.Post(c.Url, "application/json", bytes.NewReader(buf))
if err != nil { if err != nil {
return err return err
} }