[MM-47953] Outgoing webhook does not trigger when using multiple callback URLs (#22394)
Co-authored-by: Michael Kochell <6913320+mickmister@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
5dbf874d1e
Коммит
f8fc02791b
@@ -95,23 +95,30 @@ func (a *App) handleWebhookEvents(c request.CTX, post *model.Post, team *model.T
|
||||
}
|
||||
|
||||
func (a *App) TriggerWebhook(c request.CTX, payload *model.OutgoingWebhookPayload, hook *model.OutgoingWebhook, post *model.Post, channel *model.Channel) {
|
||||
var body io.Reader
|
||||
var contentType string
|
||||
var jsonBytes []byte
|
||||
var err error
|
||||
|
||||
contentType := "application/x-www-form-urlencoded"
|
||||
if hook.ContentType == "application/json" {
|
||||
js, err := json.Marshal(payload)
|
||||
contentType = "application/json"
|
||||
jsonBytes, err = json.Marshal(payload)
|
||||
if err != nil {
|
||||
c.Logger().Warn("Failed to encode to JSON", mlog.Err(err))
|
||||
return
|
||||
}
|
||||
body = bytes.NewReader(js)
|
||||
contentType = "application/json"
|
||||
} else {
|
||||
body = strings.NewReader(payload.ToFormValues())
|
||||
contentType = "application/x-www-form-urlencoded"
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
|
||||
for i := range hook.CallbackURLs {
|
||||
var body io.Reader
|
||||
if hook.ContentType == "application/json" {
|
||||
body = bytes.NewReader(jsonBytes)
|
||||
} else {
|
||||
body = strings.NewReader(payload.ToFormValues())
|
||||
}
|
||||
wg.Add(1)
|
||||
|
||||
// Get the callback URL by index to properly capture it for the go func
|
||||
url := hook.CallbackURLs[i]
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user