mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-28 03:51:05 +01:00
ProxyUrlTransformer (#1361)
* ProxyUrlTransformer * tests * Update src/WireMock.Net.Shared/Settings/ProxyUrlReplaceSettings.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@ using WireMock.Util;
|
||||
|
||||
namespace WireMock.Transformers;
|
||||
|
||||
interface ITransformer
|
||||
internal interface ITransformer
|
||||
{
|
||||
ResponseMessage Transform(IMapping mapping, IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options);
|
||||
|
||||
@@ -15,4 +15,6 @@ interface ITransformer
|
||||
IDictionary<string, WireMockList<string>> TransformHeaders(IMapping mapping, IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage, IDictionary<string, WireMockList<string>>? headers);
|
||||
|
||||
string TransformString(IMapping mapping, IRequestMessage originalRequestMessage, IResponseMessage originalResponseMessage, string? value);
|
||||
|
||||
string Transform(string template, object? model);
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
// Copyright © WireMock.Net
|
||||
|
||||
namespace WireMock.Transformers
|
||||
namespace WireMock.Transformers;
|
||||
|
||||
internal interface ITransformerContextFactory
|
||||
{
|
||||
interface ITransformerContextFactory
|
||||
{
|
||||
ITransformerContext Create();
|
||||
}
|
||||
ITransformerContext Create();
|
||||
}
|
||||
@@ -75,6 +75,11 @@ internal class Transformer : ITransformer
|
||||
return transformerContext.ParseAndRender(value, model);
|
||||
}
|
||||
|
||||
public string Transform(string template, object? model)
|
||||
{
|
||||
return model is null ? string.Empty : _factory.Create().ParseAndRender(template, model);
|
||||
}
|
||||
|
||||
public ResponseMessage Transform(IMapping mapping, IRequestMessage requestMessage, IResponseMessage original, bool useTransformerForBodyAsFile, ReplaceNodeOptions options)
|
||||
{
|
||||
var responseMessage = new ResponseMessage();
|
||||
|
||||
30
src/WireMock.Net.Minimal/Transformers/TransformerFactory.cs
Normal file
30
src/WireMock.Net.Minimal/Transformers/TransformerFactory.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
// Copyright © WireMock.Net
|
||||
|
||||
using System;
|
||||
using WireMock.Settings;
|
||||
using WireMock.Transformers.Handlebars;
|
||||
using WireMock.Transformers.Scriban;
|
||||
using WireMock.Types;
|
||||
|
||||
namespace WireMock.Transformers;
|
||||
|
||||
internal static class TransformerFactory
|
||||
{
|
||||
internal static ITransformer Create(TransformerType transformerType, WireMockServerSettings settings)
|
||||
{
|
||||
switch (transformerType)
|
||||
{
|
||||
case TransformerType.Handlebars:
|
||||
var factoryHandlebars = new HandlebarsContextFactory(settings);
|
||||
return new Transformer(settings, factoryHandlebars);
|
||||
|
||||
case TransformerType.Scriban:
|
||||
case TransformerType.ScribanDotLiquid:
|
||||
var factoryDotLiquid = new ScribanContextFactory(settings.FileSystemHandler, transformerType);
|
||||
return new Transformer(settings, factoryDotLiquid);
|
||||
|
||||
default:
|
||||
throw new NotSupportedException($"{nameof(TransformerType)} '{transformerType}' is not supported.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user