Refactor code

This commit is contained in:
Stef Heyenrath
2017-05-09 20:14:52 +02:00
parent 2c8142b93d
commit b25371cf15
3 changed files with 98 additions and 73 deletions

View File

@@ -0,0 +1,33 @@
using HandlebarsDotNet;
using System.Collections.Generic;
namespace WireMock.Transformers
{
internal static class ResponseMessageTransformer
{
public static ResponseMessage Transform(RequestMessage requestMessage, ResponseMessage original)
{
var responseMessage = new ResponseMessage { StatusCode = original.StatusCode, BodyOriginal = original.Body };
var template = new { request = requestMessage };
// Body
var templateBody = Handlebars.Compile(original.Body);
responseMessage.Body = templateBody(template);
// Headers
var newHeaders = new Dictionary<string, string>();
foreach (var header in original.Headers)
{
var templateHeaderKey = Handlebars.Compile(header.Key);
var templateHeaderValue = Handlebars.Compile(header.Value);
newHeaders.Add(templateHeaderKey(template), templateHeaderValue(template));
}
responseMessage.Headers = newHeaders;
return responseMessage;
}
}
}