diff options
author | 杨宇千 <crupest@outlook.com> | 2019-10-27 22:52:21 +0800 |
---|---|---|
committer | 杨宇千 <crupest@outlook.com> | 2019-10-27 22:52:21 +0800 |
commit | c11a1b7be5d41bb1825a7190c708fdb04923a4fd (patch) | |
tree | 3fcce419f21587d8a872d76b2f654ed81ca842b6 /Timeline/Filters | |
parent | 181b53e270ff7c0558edec75b8b255d487e796c3 (diff) | |
download | timeline-c11a1b7be5d41bb1825a7190c708fdb04923a4fd.tar.gz timeline-c11a1b7be5d41bb1825a7190c708fdb04923a4fd.tar.bz2 timeline-c11a1b7be5d41bb1825a7190c708fdb04923a4fd.zip |
Add error code tests.
Diffstat (limited to 'Timeline/Filters')
-rw-r--r-- | Timeline/Filters/ContentHeaderAttributes.cs | 52 | ||||
-rw-r--r-- | Timeline/Filters/Header.cs | 99 |
2 files changed, 99 insertions, 52 deletions
diff --git a/Timeline/Filters/ContentHeaderAttributes.cs b/Timeline/Filters/ContentHeaderAttributes.cs deleted file mode 100644 index 99bd1540..00000000 --- a/Timeline/Filters/ContentHeaderAttributes.cs +++ /dev/null @@ -1,52 +0,0 @@ -using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.Filters;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Localization;
-using Timeline.Models.Http;
-
-namespace Timeline.Filters
-{
- public class RequireContentTypeAttribute : ActionFilterAttribute
- {
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods")]
- public override void OnActionExecuting(ActionExecutingContext context)
- {
- if (context.HttpContext.Request.ContentType == null)
- {
- context.Result = new BadRequestObjectResult(HeaderErrorResponse.MissingContentType());
- }
- }
- }
-
- public class RequireContentLengthAttribute : ActionFilterAttribute
- {
- public RequireContentLengthAttribute()
- : this(true)
- {
-
- }
-
- public RequireContentLengthAttribute(bool requireNonZero)
- {
- RequireNonZero = requireNonZero;
- }
-
- public bool RequireNonZero { get; set; }
-
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods")]
- public override void OnActionExecuting(ActionExecutingContext context)
- {
- if (context.HttpContext.Request.ContentLength == null)
- {
- context.Result = new BadRequestObjectResult(HeaderErrorResponse.MissingContentLength());
- return;
- }
-
- if (RequireNonZero && context.HttpContext.Request.ContentLength.Value == 0)
- {
- context.Result = new BadRequestObjectResult(HeaderErrorResponse.ZeroContentLength());
- return;
- }
- }
- }
-}
diff --git a/Timeline/Filters/Header.cs b/Timeline/Filters/Header.cs new file mode 100644 index 00000000..f5fb16aa --- /dev/null +++ b/Timeline/Filters/Header.cs @@ -0,0 +1,99 @@ +using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.Filters;
+using Timeline.Models.Http;
+using static Timeline.Resources.Filters;
+
+namespace Timeline
+{
+ public static partial class ErrorCodes
+ {
+ public static partial class Http
+ {
+ public static partial class Filter // bxx = 1xx
+ {
+ public static partial class Header // bbb = 100
+ {
+ public static class ContentType // cc = 01
+ {
+ public const int Missing = 11000101; // dd = 01
+ }
+
+ public static class ContentLength // cc = 02
+ {
+ public const int Missing = 11000201; // dd = 01
+ public const int Zero = 11000202; // dd = 02
+ }
+ }
+ }
+
+ }
+ }
+}
+
+namespace Timeline.Filters
+{
+ public class RequireContentTypeAttribute : ActionFilterAttribute
+ {
+ internal static CommonResponse CreateResponse()
+ {
+ return new CommonResponse(
+ ErrorCodes.Http.Filter.Header.ContentType.Missing,
+ MessageHeaderContentTypeMissing);
+ }
+
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods")]
+ public override void OnActionExecuting(ActionExecutingContext context)
+ {
+ if (context.HttpContext.Request.ContentType == null)
+ {
+ context.Result = new BadRequestObjectResult(CreateResponse());
+ }
+ }
+ }
+
+ public class RequireContentLengthAttribute : ActionFilterAttribute
+ {
+ internal static CommonResponse CreateMissingResponse()
+ {
+ return new CommonResponse(
+ ErrorCodes.Http.Filter.Header.ContentLength.Missing,
+ MessageHeaderContentLengthMissing);
+ }
+
+ internal static CommonResponse CreateZeroResponse()
+ {
+ return new CommonResponse(
+ ErrorCodes.Http.Filter.Header.ContentLength.Zero,
+ MessageHeaderContentLengthZero);
+ }
+
+ public RequireContentLengthAttribute()
+ : this(true)
+ {
+
+ }
+
+ public RequireContentLengthAttribute(bool requireNonZero)
+ {
+ RequireNonZero = requireNonZero;
+ }
+
+ public bool RequireNonZero { get; set; }
+
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1062:Validate arguments of public methods")]
+ public override void OnActionExecuting(ActionExecutingContext context)
+ {
+ if (context.HttpContext.Request.ContentLength == null)
+ {
+ context.Result = new BadRequestObjectResult(CreateMissingResponse());
+ return;
+ }
+
+ if (RequireNonZero && context.HttpContext.Request.ContentLength.Value == 0)
+ {
+ context.Result = new BadRequestObjectResult(CreateZeroResponse());
+ return;
+ }
+ }
+ }
+}
|