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> /// <summary>
/// Request Log Model /// Request Log Model
/// </summary> /// </summary>
public class LogEntryModel public class LogEntryModel
{ {
/// <summary>
/// Gets or sets the unique identifier.
/// </summary>
/// <value>
/// The unique identifier.
/// </value>
public Guid Guid { get; set; }
/// <summary> /// <summary>
/// Gets or sets the request. /// Gets or sets the request.
/// </summary> /// </summary>

View File

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

View File

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

View File

@@ -46,6 +46,7 @@ namespace WireMock.Server
Given(Request.Create().WithPath(AdminRequests).UsingDelete()).RespondWith(new DynamicResponseProvider(RequestsDelete)); Given(Request.Create().WithPath(AdminRequests).UsingDelete()).RespondWith(new DynamicResponseProvider(RequestsDelete));
} }
#region Mapping
private ResponseMessage MappingGet(RequestMessage requestMessage) private ResponseMessage MappingGet(RequestMessage requestMessage)
{ {
Guid guid = Guid.Parse(requestMessage.Path.TrimStart(AdminMappings.ToCharArray())); Guid guid = Guid.Parse(requestMessage.Path.TrimStart(AdminMappings.ToCharArray()));
@@ -88,7 +89,9 @@ namespace WireMock.Server
return new ResponseMessage { Body = "Mapping removed" }; return new ResponseMessage { Body = "Mapping removed" };
} }
#endregion Mapping
#region Mappings
private ResponseMessage MappingsGet(RequestMessage requestMessage) private ResponseMessage MappingsGet(RequestMessage requestMessage)
{ {
var result = new List<MappingModel>(); var result = new List<MappingModel>();
@@ -130,6 +133,50 @@ namespace WireMock.Server
return new ResponseMessage { Body = "Mappings deleted" }; 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) private IRequestBuilder InitRequestBuilder(MappingModel mappingModel)
{ {
@@ -139,7 +186,7 @@ namespace WireMock.Server
requestBuilder = requestBuilder.WithPath(path); requestBuilder = requestBuilder.WithPath(path);
else else
{ {
JToken pathToken = (JToken) mappingModel.Request.Path; JToken pathToken = (JToken)mappingModel.Request.Path;
PathModel pathModel = pathToken.ToObject<PathModel>(); PathModel pathModel = pathToken.ToObject<PathModel>();
if (pathModel?.Matchers != null) if (pathModel?.Matchers != null)
requestBuilder = requestBuilder.WithPath(pathModel.Matchers.Select(Map).ToArray()); requestBuilder = requestBuilder.WithPath(pathModel.Matchers.Select(Map).ToArray());
@@ -205,47 +252,6 @@ namespace WireMock.Server
return responseBuilder; 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) private MappingModel ToMappingModel(Mapping mapping)
{ {
var request = (Request)mapping.RequestMatcher; var request = (Request)mapping.RequestMatcher;

View File

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