summaryrefslogtreecommitdiffstats
path: root/app/webhook.go
diff options
context:
space:
mode:
authorCarlos Tadeu Panato Junior <ctadeu@gmail.com>2017-12-22 16:20:18 +0100
committerJoram Wilander <jwawilander@gmail.com>2017-12-22 10:20:18 -0500
commitd9b8c4db76956f004c6405ab8e44cf1c17308af7 (patch)
treece5dbec66b06d6828a57e326e69a92724cb27700 /app/webhook.go
parent1aac5a9c975d6428ec9aadcc5613881faa6b7874 (diff)
downloadchat-d9b8c4db76956f004c6405ab8e44cf1c17308af7.tar.gz
chat-d9b8c4db76956f004c6405ab8e44cf1c17308af7.tar.bz2
chat-d9b8c4db76956f004c6405ab8e44cf1c17308af7.zip
[PLT-8438] Include incoming webhook display name in post props (#7997)
Diffstat (limited to 'app/webhook.go')
-rw-r--r--app/webhook.go28
1 files changed, 17 insertions, 11 deletions
diff --git a/app/webhook.go b/app/webhook.go
index 3f8f035f7..ba513def5 100644
--- a/app/webhook.go
+++ b/app/webhook.go
@@ -118,6 +118,10 @@ func (a *App) TriggerWebhook(payload *model.OutgoingWebhookPayload, hook *model.
if webhookResp.ResponseType == model.OUTGOING_HOOK_RESPONSE_TYPE_COMMENT {
postRootId = post.Id
}
+ if len(webhookResp.Props) == 0 {
+ webhookResp.Props = make(model.StringInterface)
+ }
+ webhookResp.Props["webhook_display_name"] = hook.DisplayName
if _, err := a.CreateWebhookPost(hook.CreatorId, channel, *webhookResp.Text, webhookResp.Username, webhookResp.IconURL, webhookResp.Props, webhookResp.Type, postRootId); err != nil {
l4g.Error(utils.T("api.post.handle_webhook_events_and_forget.create_post.error"), err)
}
@@ -542,25 +546,27 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq
channelName := req.ChannelName
webhookType := req.Type
+ var hook *model.IncomingWebhook
+ if result := <-hchan; result.Err != nil {
+ return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.invalid.app_error", nil, "err="+result.Err.Message, http.StatusBadRequest)
+ } else {
+ hook = result.Data.(*model.IncomingWebhook)
+ }
+
+ if len(req.Props) == 0 {
+ req.Props = make(model.StringInterface)
+ }
+
+ req.Props["webhook_display_name"] = hook.DisplayName
+
text = a.ProcessSlackText(text)
req.Attachments = a.ProcessSlackAttachments(req.Attachments)
-
// attachments is in here for slack compatibility
if len(req.Attachments) > 0 {
- if len(req.Props) == 0 {
- req.Props = make(model.StringInterface)
- }
req.Props["attachments"] = req.Attachments
webhookType = model.POST_SLACK_ATTACHMENT
}
- var hook *model.IncomingWebhook
- if result := <-hchan; result.Err != nil {
- return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.invalid.app_error", nil, "err="+result.Err.Message, http.StatusBadRequest)
- } else {
- hook = result.Data.(*model.IncomingWebhook)
- }
-
var channel *model.Channel
var cchan store.StoreChannel