feat(api): surface 403/404/409 responses via middleware and docs
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using DigitalData.TaskFlow.Application.Common.Exceptions;
|
||||
using DigitalData.TaskFlow.Application.Common.Factories;
|
||||
using DigitalData.TaskFlow.Domain.Common;
|
||||
using DigitalData.TaskFlow.Domain.Enums;
|
||||
@@ -23,6 +24,16 @@ public sealed class ExceptionHandlingMiddleware(RequestDelegate next, ILogger<Ex
|
||||
{
|
||||
await next(context);
|
||||
}
|
||||
catch (ApiException apiException)
|
||||
{
|
||||
logger.LogWarning(apiException, "API exception intercepted.");
|
||||
|
||||
context.Response.StatusCode = apiException.StatusCode;
|
||||
context.Response.ContentType = "application/json";
|
||||
|
||||
var response = ApiEnvelopeFactory.Create<object?>(null, apiException.MetaCode, apiException.Message);
|
||||
await context.Response.WriteAsync(JsonSerializer.Serialize(response, JsonOptions));
|
||||
}
|
||||
catch (ValidationException validationException)
|
||||
{
|
||||
logger.LogWarning(validationException, "Validation failed.");
|
||||
|
||||
Reference in New Issue
Block a user