Fix GUID for LogEntry

This commit is contained in:
Stef Heyenrath
2017-01-30 11:34:11 +01:00
parent f6b8986dd6
commit 0a2cd88b5c
5 changed files with 71 additions and 52 deletions

View File

@@ -1,10 +1,20 @@
namespace WireMock.Admin.Requests
using System;
namespace WireMock.Admin.Requests
{
/// <summary>
/// Request Log Model
/// </summary>
public class LogEntryModel
{
/// <summary>
/// Gets or sets the unique identifier.
/// </summary>
/// <value>
/// The unique identifier.
/// </value>
public Guid Guid { get; set; }
/// <summary>
/// Gets or sets the request.
/// </summary>

View File

@@ -9,14 +9,6 @@ namespace WireMock.Admin.Requests
/// </summary>
public class LogRequestModel
{
/// <summary>
/// Gets or sets the unique identifier.
/// </summary>
/// <value>
/// The unique identifier.
/// </value>
public Guid Guid { get; set; }
/// <summary>
/// Gets the DateTime.
/// </summary>

View File

@@ -1,10 +1,20 @@
namespace WireMock.Logging
using System;
namespace WireMock.Logging
{
/// <summary>
/// LogEntry
/// </summary>
public class LogEntry
{
/// <summary>
/// Gets or sets the unique identifier.
/// </summary>
/// <value>
/// The unique identifier.
/// </value>
public Guid Guid { get; set; }
/// <summary>
/// Gets or sets the request message.
/// </summary>

View File

@@ -46,6 +46,7 @@ namespace WireMock.Server
Given(Request.Create().WithPath(AdminRequests).UsingDelete()).RespondWith(new DynamicResponseProvider(RequestsDelete));
}
#region Mapping
private ResponseMessage MappingGet(RequestMessage requestMessage)
{
Guid guid = Guid.Parse(requestMessage.Path.TrimStart(AdminMappings.ToCharArray()));
@@ -88,7 +89,9 @@ namespace WireMock.Server
return new ResponseMessage { Body = "Mapping removed" };
}
#endregion Mapping
#region Mappings
private ResponseMessage MappingsGet(RequestMessage requestMessage)
{
var result = new List<MappingModel>();
@@ -130,6 +133,50 @@ namespace WireMock.Server
return new ResponseMessage { Body = "Mappings deleted" };
}
#endregion Mappings
#region Requests
private ResponseMessage RequestsGet(RequestMessage requestMessage)
{
var result = new List<LogEntryModel>();
foreach (var logEntry in LogEntries.Where(r => !r.RequestMessage.Path.StartsWith("/__admin/")))
{
var model = new LogEntryModel
{
Guid = logEntry.Guid,
Request = new LogRequestModel
{
DateTime = logEntry.RequestMessage.DateTime,
Url = logEntry.RequestMessage.Path,
AbsoleteUrl = logEntry.RequestMessage.Url,
Query = logEntry.RequestMessage.Query,
Method = logEntry.RequestMessage.Method,
Body = logEntry.RequestMessage.Body,
Headers = logEntry.RequestMessage.Headers,
Cookies = logEntry.RequestMessage.Cookies
},
Response = new LogResponseModel
{
StatusCode = logEntry.ResponseMessage.StatusCode,
Body = logEntry.ResponseMessage.Body,
BodyOriginal = logEntry.ResponseMessage.BodyOriginal,
Headers = logEntry.ResponseMessage.Headers
}
};
result.Add(model);
}
return ToJson(result);
}
private ResponseMessage RequestsDelete(RequestMessage requestMessage)
{
ResetLogEntries();
return new ResponseMessage { Body = "Requests deleted" };
}
#endregion Requests
private IRequestBuilder InitRequestBuilder(MappingModel mappingModel)
{
@@ -139,7 +186,7 @@ namespace WireMock.Server
requestBuilder = requestBuilder.WithPath(path);
else
{
JToken pathToken = (JToken) mappingModel.Request.Path;
JToken pathToken = (JToken)mappingModel.Request.Path;
PathModel pathModel = pathToken.ToObject<PathModel>();
if (pathModel?.Matchers != null)
requestBuilder = requestBuilder.WithPath(pathModel.Matchers.Select(Map).ToArray());
@@ -205,47 +252,6 @@ namespace WireMock.Server
return responseBuilder;
}
private ResponseMessage RequestsGet(RequestMessage requestMessage)
{
var result = new List<LogEntryModel>();
foreach (var logEntry in LogEntries.Where(r => !r.RequestMessage.Path.StartsWith("/__admin/")))
{
var model = new LogEntryModel
{
Request = new LogRequestModel
{
Guid = Guid.NewGuid(),
DateTime = logEntry.RequestMessage.DateTime,
Url = logEntry.RequestMessage.Path,
AbsoleteUrl = logEntry.RequestMessage.Url,
Query = logEntry.RequestMessage.Query,
Method = logEntry.RequestMessage.Method,
Body = logEntry.RequestMessage.Body,
Headers = logEntry.RequestMessage.Headers,
Cookies = logEntry.RequestMessage.Cookies
},
Response = new LogResponseModel
{
StatusCode = logEntry.ResponseMessage.StatusCode,
Body = logEntry.ResponseMessage.Body,
BodyOriginal = logEntry.ResponseMessage.BodyOriginal,
Headers = logEntry.ResponseMessage.Headers
}
};
result.Add(model);
}
return ToJson(result);
}
private ResponseMessage RequestsDelete(RequestMessage requestMessage)
{
ResetLogEntries();
return new ResponseMessage { Body = "Requests deleted" };
}
private MappingModel ToMappingModel(Mapping mapping)
{
var request = (Request)mapping.RequestMatcher;

View File

@@ -277,6 +277,7 @@ namespace WireMock.Server
{
var log = new LogEntry
{
Guid = Guid.NewGuid(),
RequestMessage = request,
ResponseMessage = response
};