WretchedMachines/WretchedMachinesBackend/Validation/ValidationExceptionMiddleware.cs

33 lines
856 B
C#

using Customers.Api.Contracts.Responses;
using FluentValidation;
namespace Customers.Api.Validation;
public class ValidationExceptionMiddleware
{
private readonly RequestDelegate _request;
public ValidationExceptionMiddleware(RequestDelegate request)
{
_request = request;
}
public async Task InvokeAsync(HttpContext context)
{
try
{
await _request(context);
}
catch (ValidationException exception)
{
context.Response.StatusCode = 400;
var messages = exception.Errors.Select(x => x.ErrorMessage).ToList();
var validationFailureResponse = new ValidationFailureResponse
{
Errors = messages
};
await context.Response.WriteAsJsonAsync(validationFailureResponse);
}
}
}