Enhance HttpExceptionMapping with logging and defaults

Added optional 'Log' property to HttpExceptionMapping for
specifying logging behavior. Introduced static readonly
properties for default mappings of BadRequestException and
NotFoundException using a default message factory.
This commit is contained in:
Developer 02 2025-05-19 14:24:10 +02:00
parent 9b29a49ad6
commit b38422256c

View File

@ -2,8 +2,14 @@
namespace DigitalData.Core.Exceptions.Middleware; namespace DigitalData.Core.Exceptions.Middleware;
public record HttpExceptionMapping(Type ExceptionType, HttpStatusCode StatusCode, Func<Exception, string>? MessageFactory = null) public record HttpExceptionMapping(Type ExceptionType, HttpStatusCode StatusCode, Func<Exception, string>? MessageFactory = null, bool Log = false)
{ {
public static HttpExceptionMapping Create<TException>(HttpStatusCode statusCode, Func<Exception, string>? messageFactory = null) where TException : Exception public static HttpExceptionMapping Create<TException>(HttpStatusCode statusCode, Func<Exception, string>? messageFactory = null) where TException : Exception
=> new HttpExceptionMapping(typeof(TException), statusCode, messageFactory); => new HttpExceptionMapping(typeof(TException), statusCode, messageFactory);
public static readonly Func<Exception, string>? DefaultMessageFactory = ex => ex.Message;
public static readonly HttpExceptionMapping DefaultBadRequest = Create<BadRequestException>(HttpStatusCode.BadRequest, DefaultMessageFactory);
public static readonly HttpExceptionMapping DefaultNotFound = Create<NotFoundException>(HttpStatusCode.NotFound, DefaultMessageFactory);
}; };