Skip to content

Commit ec3a31b

Browse files
committed
Update ApiResponseFilter.cs for some status code that require empty body.
1 parent 9c687a5 commit ec3a31b

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/Initium/Filters/ApiResponseFilter.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,19 @@ public override void OnActionExecuted(ActionExecutedContext context)
3737
serviceResult.Message
3838
?? GetApiResponseMessage(context, statusCode)
3939
?? ApiResponseHelper.GetDefaultMessageForStatusCode(statusCode);
40-
41-
// Create an ApiResponse object, including HTTP context details.
42-
context.Result = ApiResponseBuilder
43-
.CreateFromContext(context.HttpContext)
44-
.WithStatusCode(statusCode)
45-
.WithMessage(message)
46-
.BuildAsJsonResult();
40+
41+
// Determine the appropriate response based on the status code:
42+
// - For 204 (No Content) and 304 (Not Modified), set a StatusCodeResult without a response body.
43+
// - For other status codes, create a standardized ApiResponse object including HTTP context details.
44+
context.Result = statusCode switch
45+
{
46+
HttpStatusCode.NoContent or HttpStatusCode.NotModified => new StatusCodeResult((int)statusCode),
47+
_ => ApiResponseBuilder
48+
.CreateFromContext(context.HttpContext)
49+
.WithStatusCode(statusCode)
50+
.WithMessage(message)
51+
.BuildAsJsonResult()
52+
};
4753
}
4854

4955
private static string? GetApiResponseMessage(ActionExecutedContext context, HttpStatusCode statusCode) =>

0 commit comments

Comments
 (0)