summaryrefslogtreecommitdiffstats
path: root/app/webhook.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-02-21 19:42:34 -0500
committerGitHub <noreply@github.com>2017-02-21 19:42:34 -0500
commit69cac604e09c139845d2f63ac95fb702fb5a9fe1 (patch)
tree611920333a5d55f5db0cca43bd3cb5cf1bee30e8 /app/webhook.go
parentb61115df55ea6eba9976e561a8b39bf5a297fcc9 (diff)
downloadchat-69cac604e09c139845d2f63ac95fb702fb5a9fe1.tar.gz
chat-69cac604e09c139845d2f63ac95fb702fb5a9fe1.tar.bz2
chat-69cac604e09c139845d2f63ac95fb702fb5a9fe1.zip
Implement create and get incoming webhook endpoints for APIv4 (#5407)
* Implement POST /hooks/incoming endpoint for APIv4 * Implement GET /hooks/incoming endpoint for APIv4 * Updates per feedback
Diffstat (limited to 'app/webhook.go')
-rw-r--r--app/webhook.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/webhook.go b/app/webhook.go
index 89e322180..ff7f2726e 100644
--- a/app/webhook.go
+++ b/app/webhook.go
@@ -192,3 +192,42 @@ func CreateWebhookPost(userId, teamId, channelId, text, overrideUsername, overri
return post, nil
}
+
+func CreateIncomingWebhookForChannel(userId string, channel *model.Channel, hook *model.IncomingWebhook) (*model.IncomingWebhook, *model.AppError) {
+ if !utils.Cfg.ServiceSettings.EnableIncomingWebhooks {
+ return nil, model.NewAppError("CreateIncomingWebhookForChannel", "api.webhook.create_incoming.disabled.app_errror", nil, "", http.StatusNotImplemented)
+ }
+
+ hook.UserId = userId
+ hook.TeamId = channel.TeamId
+
+ if result := <-Srv.Store.Webhook().SaveIncoming(hook); result.Err != nil {
+ return nil, result.Err
+ } else {
+ return result.Data.(*model.IncomingWebhook), nil
+ }
+}
+
+func GetIncomingWebhooksForTeamPage(teamId string, page, perPage int) ([]*model.IncomingWebhook, *model.AppError) {
+ if !utils.Cfg.ServiceSettings.EnableIncomingWebhooks {
+ return nil, model.NewAppError("GetIncomingWebhooksForTeamPage", "api.webhook.get_incoming.disabled.app_error", nil, "", http.StatusNotImplemented)
+ }
+
+ if result := <-Srv.Store.Webhook().GetIncomingByTeam(teamId, page*perPage, perPage); result.Err != nil {
+ return nil, result.Err
+ } else {
+ return result.Data.([]*model.IncomingWebhook), nil
+ }
+}
+
+func GetIncomingWebhooksPage(page, perPage int) ([]*model.IncomingWebhook, *model.AppError) {
+ if !utils.Cfg.ServiceSettings.EnableIncomingWebhooks {
+ return nil, model.NewAppError("GetIncomingWebhooksPage", "api.webhook.get_incoming.disabled.app_error", nil, "", http.StatusNotImplemented)
+ }
+
+ if result := <-Srv.Store.Webhook().GetIncomingList(page*perPage, perPage); result.Err != nil {
+ return nil, result.Err
+ } else {
+ return result.Data.([]*model.IncomingWebhook), nil
+ }
+}