diff --git a/webhooks/legacy.go b/webhooks/legacy.go index 0c5527ffc4b4331e6865a57448b8c442f2c73f6e..436203166f75cbf9e8eefb2cfc0bd3edc60823a8 100644 --- a/webhooks/legacy.go +++ b/webhooks/legacy.go @@ -209,7 +209,7 @@ return fmt.Errorf("http.NewRequestWithContext: %v: %e", err, work.ErrDoNotReattempt) } - req.Header = headers + req.Header = make(http.Header) for key, values := range headers { for _, value := range values { req.Header.Add(key, value) @@ -218,6 +218,9 @@ } nonce, sig := crypto.SignWebhook(payload) req.Header.Add("X-Payload-Nonce", nonce) req.Header.Add("X-Payload-Signature", sig) + + var ours strings.Builder + req.Header.Write(&ours) resp, err := client.Do(req) if err != nil { @@ -233,13 +236,14 @@ err, work.ErrDoNotReattempt) } if err = database.WithTx(ctx, nil, func(tx *sql.Tx) error { - var sb strings.Builder - resp.Header.Write(&sb) + var theirs strings.Builder + resp.Header.Write(&theirs) _, err := sq. Update(name+"_webhook_delivery"). Set("response", string(body)). Set("response_status", resp.StatusCode). - Set("response_headers", sb.String()). + Set("response_headers", theirs.String()). + Set("payload_headers", ours.String()). Where("id = ?", deliveryID). PlaceholderFormat(sq.Dollar). RunWith(tx).