mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-24 18:32:13 +01:00
56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using System.Net;
|
|
//#if OPENAPIPARSER
|
|
using System;
|
|
using System.Linq;
|
|
using WireMock.Net.OpenApiParser;
|
|
//#endif
|
|
|
|
namespace WireMock.Server;
|
|
|
|
public partial class WireMockServer
|
|
{
|
|
private IResponseMessage OpenApiConvertToMappings(IRequestMessage requestMessage)
|
|
{
|
|
//#if OPENAPIPARSER
|
|
try
|
|
{
|
|
var mappingModels = new WireMockOpenApiParser().FromText(requestMessage.Body!, out var diagnostic);
|
|
return diagnostic.Errors.Any() ? ToJson(diagnostic, false, HttpStatusCode.BadRequest) : ToJson(mappingModels);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_settings.Logger.Error("HttpStatusCode set to {0} {1}", HttpStatusCode.BadRequest, e);
|
|
return ResponseMessageBuilder.Create(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
//#else
|
|
// return ResponseMessageBuilder.Create(HttpStatusCode.BadRequest, "Not supported for .NETStandard 1.3 and .NET 4.6.x or lower.");
|
|
//#endif
|
|
}
|
|
|
|
private IResponseMessage OpenApiSaveToMappings(IRequestMessage requestMessage)
|
|
{
|
|
//#if OPENAPIPARSER
|
|
try
|
|
{
|
|
var mappingModels = new WireMockOpenApiParser().FromText(requestMessage.Body!, out var diagnostic);
|
|
if (diagnostic.Errors.Any())
|
|
{
|
|
return ToJson(diagnostic, false, HttpStatusCode.BadRequest);
|
|
}
|
|
|
|
ConvertMappingsAndRegisterAsRespondProvider(mappingModels);
|
|
|
|
return ResponseMessageBuilder.Create(HttpStatusCode.Created, "OpenApi document converted to Mappings");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_settings.Logger.Error("HttpStatusCode set to {0} {1}", HttpStatusCode.BadRequest, e);
|
|
return ResponseMessageBuilder.Create(HttpStatusCode.BadRequest, e.Message);
|
|
}
|
|
//#else
|
|
// return ResponseMessageBuilder.Create(HttpStatusCode.BadRequest, "Not supported for .NETStandard 1.3 and .NET 4.6.x or lower.");
|
|
//#endif
|
|
}
|
|
} |