From c63352e04cbcbb7287214f802b94c29aba10cdab Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sat, 25 Nov 2023 16:21:43 -0500 Subject: [PATCH] Nullify `ApiController` --- .../Controllers/ApiController.cs | 24 +++++++++---------- .../Extensions/ControllerBaseExtensions.cs | 2 +- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Tgstation.Server.Host/Controllers/ApiController.cs b/src/Tgstation.Server.Host/Controllers/ApiController.cs index 561bde364b..ea8c4c3209 100644 --- a/src/Tgstation.Server.Host/Controllers/ApiController.cs +++ b/src/Tgstation.Server.Host/Controllers/ApiController.cs @@ -28,8 +28,6 @@ using Tgstation.Server.Host.Models; using Tgstation.Server.Host.Security; using Tgstation.Server.Host.Utils; -#nullable disable - namespace Tgstation.Server.Host.Controllers { /// @@ -50,7 +48,7 @@ namespace Tgstation.Server.Host.Controllers /// /// The for the operation. /// - protected ApiHeaders ApiHeaders => ApiHeadersProvider.ApiHeaders; + protected ApiHeaders? ApiHeaders => ApiHeadersProvider.ApiHeaders; /// /// The containing value of . @@ -75,7 +73,7 @@ namespace Tgstation.Server.Host.Controllers /// /// The for the operation. /// - protected Models.Instance Instance { get; } + protected Models.Instance? Instance { get; } /// /// If are required. @@ -102,13 +100,13 @@ namespace Tgstation.Server.Host.Controllers ApiHeadersProvider = apiHeadersProvider ?? throw new ArgumentNullException(nameof(apiHeadersProvider)); Logger = logger ?? throw new ArgumentNullException(nameof(logger)); - Instance = AuthenticationContext?.InstancePermissionSet?.Instance; + Instance = AuthenticationContext.InstancePermissionSet?.Instance; this.requireHeaders = requireHeaders; } /// #pragma warning disable CA1506 // TODO: Decomplexify - protected override async ValueTask HookExecuteAction(Func executeAction, CancellationToken cancellationToken) + protected override async ValueTask HookExecuteAction(Func executeAction, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(executeAction); @@ -116,7 +114,7 @@ namespace Tgstation.Server.Host.Controllers if (ApiHeaders == null) { if (requireHeaders) - return HeadersIssue(ApiHeadersProvider.HeadersException); + return HeadersIssue(ApiHeadersProvider.HeadersException!); } var errorCase = await ValidateRequest(cancellationToken); @@ -126,7 +124,7 @@ namespace Tgstation.Server.Host.Controllers if (ModelState?.IsValid == false) { var errorMessages = ModelState - .SelectMany(x => x.Value.Errors) + .SelectMany(x => x.Value!.Errors) .Select(x => x.ErrorMessage) // We use RequiredAttributes purely for preventing properties from becoming nullable in the databases @@ -240,8 +238,8 @@ namespace Tgstation.Server.Host.Controllers /// /// The for the operation. /// A resulting in an appropriate on validation failure, otherwise. - protected virtual ValueTask ValidateRequest(CancellationToken cancellationToken) - => ValueTask.FromResult(null); + protected virtual ValueTask ValidateRequest(CancellationToken cancellationToken) + => ValueTask.FromResult(null); /// /// Response for missing/Invalid headers. @@ -276,7 +274,7 @@ namespace Tgstation.Server.Host.Controllers /// A resulting in the for the operation. protected ValueTask Paginated( Func>> queryGenerator, - Func resultTransformer, + Func? resultTransformer, int? pageQuery, int? pageSizeQuery, CancellationToken cancellationToken) => PaginatedImpl( @@ -324,7 +322,7 @@ namespace Tgstation.Server.Host.Controllers /// A resulting in the for the operation. async ValueTask PaginatedImpl( Func>> queryGenerator, - Func resultTransformer, + Func? resultTransformer, int? pageQuery, int? pageSizeQuery, CancellationToken cancellationToken) @@ -344,7 +342,7 @@ namespace Tgstation.Server.Host.Controllers var page = pageQuery ?? 1; var paginationResult = await queryGenerator(); - if (paginationResult.EarlyOut != null) + if (!paginationResult.Valid) return paginationResult.EarlyOut; var queriedResults = paginationResult diff --git a/src/Tgstation.Server.Host/Extensions/ControllerBaseExtensions.cs b/src/Tgstation.Server.Host/Extensions/ControllerBaseExtensions.cs index 9ab3b1cc87..f74a30913c 100644 --- a/src/Tgstation.Server.Host/Extensions/ControllerBaseExtensions.cs +++ b/src/Tgstation.Server.Host/Extensions/ControllerBaseExtensions.cs @@ -28,7 +28,7 @@ namespace Tgstation.Server.Host.Extensions /// The . /// The accompanying payload. /// A with the given . - public static ObjectResult StatusCode(this ControllerBase controller, HttpStatusCode statusCode, object errorMessage) + public static ObjectResult StatusCode(this ControllerBase controller, HttpStatusCode statusCode, object? errorMessage) => controller?.StatusCode((int)statusCode, errorMessage) ?? throw new ArgumentNullException(nameof(controller)); } }