mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-25 19:02:24 +01:00
Add functionality to call a PostTransform method after the Webhook request has been transformed (#1223)
* Add functionality to call a PostTransform method after the Webhook request has been transformed * UseTransformer == true
This commit is contained in:
@@ -46,7 +46,7 @@ internal class WebhookSender
|
|||||||
|
|
||||||
IBodyData? bodyData;
|
IBodyData? bodyData;
|
||||||
IDictionary<string, WireMockList<string>>? headers;
|
IDictionary<string, WireMockList<string>>? headers;
|
||||||
string webhookRequestUrl;
|
string requestUrl;
|
||||||
if (webhookRequest.UseTransformer == true)
|
if (webhookRequest.UseTransformer == true)
|
||||||
{
|
{
|
||||||
ITransformer transformer;
|
ITransformer transformer;
|
||||||
@@ -69,18 +69,20 @@ internal class WebhookSender
|
|||||||
|
|
||||||
bodyData = transformer.TransformBody(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.BodyData, webhookRequest.TransformerReplaceNodeOptions);
|
bodyData = transformer.TransformBody(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.BodyData, webhookRequest.TransformerReplaceNodeOptions);
|
||||||
headers = transformer.TransformHeaders(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.Headers);
|
headers = transformer.TransformHeaders(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.Headers);
|
||||||
webhookRequestUrl = transformer.TransformString(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.Url);
|
requestUrl = transformer.TransformString(mapping, originalRequestMessage, originalResponseMessage, webhookRequest.Url);
|
||||||
|
|
||||||
|
mapping.Settings.WebhookSettings?.PostTransform(mapping, requestUrl, bodyData, headers);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bodyData = webhookRequest.BodyData;
|
bodyData = webhookRequest.BodyData;
|
||||||
headers = webhookRequest.Headers;
|
headers = webhookRequest.Headers;
|
||||||
webhookRequestUrl = webhookRequest.Url;
|
requestUrl = webhookRequest.Url;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create RequestMessage
|
// Create RequestMessage
|
||||||
var requestMessage = new RequestMessage(
|
var requestMessage = new RequestMessage(
|
||||||
new UrlDetails(webhookRequestUrl),
|
new UrlDetails(requestUrl),
|
||||||
webhookRequest.Method,
|
webhookRequest.Method,
|
||||||
ClientIp,
|
ClientIp,
|
||||||
bodyData,
|
bodyData,
|
||||||
@@ -91,7 +93,7 @@ internal class WebhookSender
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Create HttpRequestMessage
|
// Create HttpRequestMessage
|
||||||
var httpRequestMessage = HttpRequestMessageHelper.Create(requestMessage, webhookRequestUrl);
|
var httpRequestMessage = HttpRequestMessageHelper.Create(requestMessage, requestUrl);
|
||||||
|
|
||||||
// Delay (if required)
|
// Delay (if required)
|
||||||
if (TryGetDelay(webhookRequest, out var delay))
|
if (TryGetDelay(webhookRequest, out var delay))
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
// Copyright © WireMock.Net
|
// Copyright © WireMock.Net
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using WireMock.Types;
|
||||||
|
using WireMock.Util;
|
||||||
|
|
||||||
namespace WireMock.Settings;
|
namespace WireMock.Settings;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -7,4 +11,14 @@ namespace WireMock.Settings;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class WebhookSettings : HttpClientSettings
|
public class WebhookSettings : HttpClientSettings
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Executes an action after the transformation of the request body.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="mapping">The mapping used for the request.</param>
|
||||||
|
/// <param name="requestUrl">The request Url.</param>
|
||||||
|
/// <param name="bodyData">The body data of the request. [Optional]</param>
|
||||||
|
/// <param name="headers">The headers of the request. [Optional]</param>
|
||||||
|
public virtual void PostTransform(IMapping mapping, string requestUrl, IBodyData? bodyData = null, IDictionary<string, WireMockList<string>>? headers = null)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user