summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/webhook.go28
-rw-r--r--app/webhook_test.go4
2 files changed, 20 insertions, 12 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
diff --git a/app/webhook_test.go b/app/webhook_test.go
index 13771a97f..bc72d4b6e 100644
--- a/app/webhook_test.go
+++ b/app/webhook_test.go
@@ -33,13 +33,15 @@ func TestCreateWebhookPost(t *testing.T) {
Text: "text",
},
},
+ "webhook_display_name": hook.DisplayName,
}, model.POST_SLACK_ATTACHMENT, "")
if err != nil {
t.Fatal(err.Error())
}
- for _, k := range []string{"from_webhook", "attachments"} {
+ for _, k := range []string{"from_webhook", "attachments", "webhook_display_name"} {
if _, ok := post.Props[k]; !ok {
+ t.Log("missing one props: " + k)
t.Fatal(k)
}
}