From 69cac604e09c139845d2f63ac95fb702fb5a9fe1 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Tue, 21 Feb 2017 19:42:34 -0500 Subject: 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 --- app/webhook.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'app/webhook.go') 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 + } +} -- cgit v1.2.3-1-g7c22