Skip to content

Commit 3fd5f64

Browse files
committed
Use a custom message in order to fix ApiResponse message.
1 parent 6d39fdf commit 3fd5f64

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/Initium/Exceptions/ApiException.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace Initium.Exceptions;
99
[SuppressMessage("ReSharper", "UnusedMember.Global")]
1010
public class ApiException : Exception
1111
{
12+
public string? CustomMessage { get; set; }
1213
public HttpStatusCode StatusCode { get; }
1314

1415
/// <summary>
@@ -18,8 +19,9 @@ public class ApiException : Exception
1819
/// <param name="message">The message describing the error. Defaults to a generic error message.</param>
1920
/// <param name="innerException">The inner exception that caused the current exception. Optional.</param>
2021
public ApiException(HttpStatusCode statusCode = HttpStatusCode.InternalServerError, string? message = null, Exception? innerException = null)
21-
: base(message ?? "An error occurred during API processing.", innerException)
22+
: base(message, innerException)
2223
{
24+
CustomMessage = message;
2325
StatusCode = statusCode;
2426
}
2527
}

src/Initium/Filters/ApiExceptionFilter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public void OnException(ExceptionContext context)
3535
// 2. Otherwise, get the message from [ApiResponse] attributes.
3636
// 3. If none is found, use the default message for the StatusCode.
3737
var message =
38-
(string.IsNullOrWhiteSpace(context.Exception.Message) ? null : context.Exception.Message)
39-
?? ApiResponseHelper.GetApiResponseMessage(context.ActionDescriptor, statusCode)
38+
(context.Exception is ApiException apiException ? apiException.CustomMessage : context.Exception.Message)
39+
?? ApiResponseHelper.GetApiResponseMessage(context.ActionDescriptor, statusCode)
4040
?? ApiResponseHelper.GetDefaultMessageForStatusCode(statusCode);
4141

4242
// Construct a standardized ApiResponse object including HTTP context details.

0 commit comments

Comments
 (0)