summaryrefslogtreecommitdiffstats
path: root/model/client.go
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2015-09-22 13:18:42 -0700
committer=Corey Hulen <corey@hulen.com>2015-09-22 13:18:42 -0700
commit6e60768abe6f0caa639febf068d718d62881ce62 (patch)
tree0600c72a7a9a3f7c1df167b3f870b38863e9a564 /model/client.go
parente22e7b8b7b66f342c2df693bbfc06a85980d253e (diff)
parentac7918c5540900ab0dbe43d61b8c1155e4279b55 (diff)
downloadchat-6e60768abe6f0caa639febf068d718d62881ce62.tar.gz
chat-6e60768abe6f0caa639febf068d718d62881ce62.tar.bz2
chat-6e60768abe6f0caa639febf068d718d62881ce62.zip
Fixing merge conflict
Diffstat (limited to 'model/client.go')
-rw-r--r--model/client.go38
1 files changed, 37 insertions, 1 deletions
diff --git a/model/client.go b/model/client.go
index d13ffa6cb..cc75ce370 100644
--- a/model/client.go
+++ b/model/client.go
@@ -49,7 +49,7 @@ func NewClient(url string) *Client {
return &Client{url, url + API_URL_SUFFIX, &http.Client{}, "", ""}
}
-func (c *Client) DoPost(url string, data, contentType string) (*http.Response, *AppError) {
+func (c *Client) DoPost(url, data, contentType string) (*http.Response, *AppError) {
rq, _ := http.NewRequest("POST", c.Url+url, strings.NewReader(data))
rq.Header.Set("Content-Type", contentType)
@@ -816,6 +816,42 @@ func (c *Client) GetAccessToken(data url.Values) (*Result, *AppError) {
}
}
+func (c *Client) CreateIncomingWebhook(hook *IncomingWebhook) (*Result, *AppError) {
+ if r, err := c.DoApiPost("/hooks/incoming/create", hook.ToJson()); err != nil {
+ return nil, err
+ } else {
+ return &Result{r.Header.Get(HEADER_REQUEST_ID),
+ r.Header.Get(HEADER_ETAG_SERVER), IncomingWebhookFromJson(r.Body)}, nil
+ }
+}
+
+func (c *Client) PostToWebhook(id, payload string) (*Result, *AppError) {
+ if r, err := c.DoPost("/hooks/"+id, payload, "application/x-www-form-urlencoded"); err != nil {
+ return nil, err
+ } else {
+ return &Result{r.Header.Get(HEADER_REQUEST_ID),
+ r.Header.Get(HEADER_ETAG_SERVER), nil}, nil
+ }
+}
+
+func (c *Client) DeleteIncomingWebhook(data map[string]string) (*Result, *AppError) {
+ if r, err := c.DoApiPost("/hooks/incoming/delete", MapToJson(data)); err != nil {
+ return nil, err
+ } else {
+ return &Result{r.Header.Get(HEADER_REQUEST_ID),
+ r.Header.Get(HEADER_ETAG_SERVER), MapFromJson(r.Body)}, nil
+ }
+}
+
+func (c *Client) ListIncomingWebhooks() (*Result, *AppError) {
+ if r, err := c.DoApiGet("/hooks/incoming/list", "", ""); err != nil {
+ return nil, err
+ } else {
+ return &Result{r.Header.Get(HEADER_REQUEST_ID),
+ r.Header.Get(HEADER_ETAG_SERVER), IncomingWebhookListFromJson(r.Body)}, nil
+ }
+}
+
func (c *Client) MockSession(sessionToken string) {
c.AuthToken = sessionToken
c.AuthType = HEADER_BEARER