mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-01-19 16:47:06 +01:00
DELETE /__admin/requests/{guid}
This commit is contained in:
@@ -49,9 +49,10 @@ namespace WireMock.Server
|
||||
|
||||
// __admin/request/{guid}
|
||||
Given(Request.Create().WithPath(_adminRequestsGuidPathMatcher).UsingGet()).RespondWith(new DynamicResponseProvider(RequestGet));
|
||||
Given(Request.Create().WithPath(_adminRequestsGuidPathMatcher).UsingDelete()).RespondWith(new DynamicResponseProvider(RequestDelete));
|
||||
}
|
||||
|
||||
#region Mapping
|
||||
#region Mapping/{guid}
|
||||
private ResponseMessage MappingGet(RequestMessage requestMessage)
|
||||
{
|
||||
Guid guid = Guid.Parse(requestMessage.Path.Substring(AdminMappings.Length + 1));
|
||||
@@ -90,11 +91,12 @@ namespace WireMock.Server
|
||||
{
|
||||
Guid guid = Guid.Parse(requestMessage.Path.Substring(AdminMappings.Length + 1));
|
||||
|
||||
DeleteMapping(guid);
|
||||
if (DeleteMapping(guid))
|
||||
return new ResponseMessage { Body = "Mapping removed" };
|
||||
|
||||
return new ResponseMessage { Body = "Mapping removed" };
|
||||
return new ResponseMessage { Body = "Mapping not found" };
|
||||
}
|
||||
#endregion Mapping
|
||||
#endregion Mapping/{guid}
|
||||
|
||||
#region Mappings
|
||||
private ResponseMessage MappingsGet(RequestMessage requestMessage)
|
||||
@@ -140,7 +142,7 @@ namespace WireMock.Server
|
||||
}
|
||||
#endregion Mappings
|
||||
|
||||
#region Request
|
||||
#region Request/{guid}
|
||||
private ResponseMessage RequestGet(RequestMessage requestMessage)
|
||||
{
|
||||
Guid guid = Guid.Parse(requestMessage.Path.Substring(AdminRequests.Length + 1));
|
||||
@@ -153,7 +155,17 @@ namespace WireMock.Server
|
||||
|
||||
return ToJson(model);
|
||||
}
|
||||
#endregion Request
|
||||
|
||||
private ResponseMessage RequestDelete(RequestMessage requestMessage)
|
||||
{
|
||||
Guid guid = Guid.Parse(requestMessage.Path.Substring(AdminRequests.Length + 1));
|
||||
|
||||
if (DeleteLogEntry(guid))
|
||||
return new ResponseMessage { Body = "Request removed" };
|
||||
|
||||
return new ResponseMessage { Body = "Request not found" };
|
||||
}
|
||||
#endregion Request/{guid}
|
||||
|
||||
#region Requests
|
||||
private ResponseMessage RequestsGet(RequestMessage requestMessage)
|
||||
|
||||
@@ -141,6 +141,27 @@ namespace WireMock.Server
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the mapping.
|
||||
/// </summary>
|
||||
/// <param name="guid">The unique identifier.</param>
|
||||
[PublicAPI]
|
||||
public bool DeleteLogEntry(Guid guid)
|
||||
{
|
||||
lock (((ICollection)_logEntries).SyncRoot)
|
||||
{
|
||||
// Check a logentry exists with the same GUID, if so, remove it.
|
||||
var existing = _logEntries.FirstOrDefault(m => m.Guid == guid);
|
||||
if (existing != null)
|
||||
{
|
||||
_logEntries.Remove(existing);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets the mappings.
|
||||
/// </summary>
|
||||
@@ -153,9 +174,11 @@ namespace WireMock.Server
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets the mappings.
|
||||
/// Deletes the mapping.
|
||||
/// </summary>
|
||||
public void DeleteMapping(Guid guid)
|
||||
/// <param name="guid">The unique identifier.</param>
|
||||
[PublicAPI]
|
||||
public bool DeleteMapping(Guid guid)
|
||||
{
|
||||
lock (((ICollection)_mappings).SyncRoot)
|
||||
{
|
||||
@@ -164,7 +187,10 @@ namespace WireMock.Server
|
||||
if (existingMapping != null)
|
||||
{
|
||||
_mappings.Remove(existingMapping);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user