aboutsummaryrefslogtreecommitdiff
path: root/src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs')
-rw-r--r--src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs
index c017a8c..6885f84 100644
--- a/src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs
+++ b/src/Web/DevHive.Web/Configurations/Extensions/ConfigureExceptionHandlerMiddleware.cs
@@ -1,11 +1,33 @@
using DevHive.Web.Middleware;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Configuration;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Http;
namespace DevHive.Web.Configurations.Extensions
{
public static class ConfigureExceptionHandlerMiddleware
{
+ public static void ConfigureExceptionHandler(this IServiceCollection services, IConfiguration configuration)
+ {
+ services.Configure<ApiBehaviorOptions>(o =>
+ {
+ o.InvalidModelStateResponseFactory = actionContext =>
+ {
+ var problemDetails = new ValidationProblemDetails(actionContext.ModelState)
+ {
+ Status = StatusCodes.Status422UnprocessableEntity
+ };
+
+ return new UnprocessableEntityObjectResult(problemDetails)
+ {
+ ContentTypes = { "application/problem+json" }
+ };
+ };
+ });
+ }
+
public static void UseExceptionHandlerMiddlewareConfiguration(this IApplicationBuilder app)
{
app.UseMiddleware<ExceptionMiddleware>();