From 7f0eb0f4f63556331dca29ee7cd400fbb001ac29 Mon Sep 17 00:00:00 2001 From: sillock1 Date: Sun, 28 Apr 2024 18:01:34 +0100 Subject: [PATCH] refactor: tidied up code with newlines and removed action filter for checks in the functions --- .../Update/History/UpdateHistoryService.cs | 6 ++--- .../Update/RecentUpdateProvider.cs | 2 +- src/NzbDrone.Host/Bootstrap.cs | 2 ++ src/Sonarr.Api.V3/Logs/LogController.cs | 13 ++++++++--- src/Sonarr.Api.V3/Update/UpdateController.cs | 13 +++++++---- ...ogDatabaseDisabledActionFilterAttribute.cs | 23 ------------------- 6 files changed, 25 insertions(+), 34 deletions(-) delete mode 100644 src/Sonarr.Http/REST/Filters/LogDatabaseDisabledActionFilterAttribute.cs diff --git a/src/NzbDrone.Core/Update/History/UpdateHistoryService.cs b/src/NzbDrone.Core/Update/History/UpdateHistoryService.cs index df4642d81..7be7349e1 100644 --- a/src/NzbDrone.Core/Update/History/UpdateHistoryService.cs +++ b/src/NzbDrone.Core/Update/History/UpdateHistoryService.cs @@ -19,16 +19,16 @@ namespace NzbDrone.Core.Update.History { private readonly IUpdateHistoryRepository _repository; private readonly IEventAggregator _eventAggregator; - private readonly Logger _logger; private readonly IConfigFileProvider _configFileProvider; + private readonly Logger _logger; private Version _prevVersion; - public UpdateHistoryService(IUpdateHistoryRepository repository, IEventAggregator eventAggregator, Logger logger, IConfigFileProvider configFileProvider) + public UpdateHistoryService(IUpdateHistoryRepository repository, IEventAggregator eventAggregator, IConfigFileProvider configFileProvider, Logger logger) { _repository = repository; _eventAggregator = eventAggregator; - _logger = logger; _configFileProvider = configFileProvider; + _logger = logger; } public Version PreviouslyInstalled() diff --git a/src/NzbDrone.Core/Update/RecentUpdateProvider.cs b/src/NzbDrone.Core/Update/RecentUpdateProvider.cs index a3264300d..08cc39865 100644 --- a/src/NzbDrone.Core/Update/RecentUpdateProvider.cs +++ b/src/NzbDrone.Core/Update/RecentUpdateProvider.cs @@ -29,7 +29,7 @@ namespace NzbDrone.Core.Update { var branch = _configFileProvider.Branch; var version = BuildInfo.Version; - var prevVersion = _updateHistoryService.PreviouslyInstalled(); + var prevVersion = _configFileProvider.LogDbEnabled ? _updateHistoryService.PreviouslyInstalled() : null; return _updatePackageProvider.GetRecentUpdates(branch, version, prevVersion); } } diff --git a/src/NzbDrone.Host/Bootstrap.cs b/src/NzbDrone.Host/Bootstrap.cs index 562e6eefe..7462a47d0 100644 --- a/src/NzbDrone.Host/Bootstrap.cs +++ b/src/NzbDrone.Host/Bootstrap.cs @@ -95,6 +95,7 @@ namespace NzbDrone.Host .AddStartupContext(startupContext) .Resolve() .Route(appMode); + if (config.GetValue(nameof(ConfigFileProvider.LogDbEnabled), true)) { c.AddLogDatabase(); @@ -161,6 +162,7 @@ namespace NzbDrone.Host .AddNzbDroneLogger() .AddDatabase() .AddStartupContext(context); + if (logDbEnabled) { c.AddLogDatabase(); diff --git a/src/Sonarr.Api.V3/Logs/LogController.cs b/src/Sonarr.Api.V3/Logs/LogController.cs index 80a8512c2..ba8021a42 100644 --- a/src/Sonarr.Api.V3/Logs/LogController.cs +++ b/src/Sonarr.Api.V3/Logs/LogController.cs @@ -1,26 +1,33 @@ using Microsoft.AspNetCore.Mvc; using NzbDrone.Common.Extensions; +using NzbDrone.Core.Configuration; using NzbDrone.Core.Instrumentation; using Sonarr.Http; using Sonarr.Http.Extensions; -using Sonarr.Http.REST.Filters; + namespace Sonarr.Api.V3.Logs { [V3ApiController] - [TypeFilter(typeof(LogDatabaseDisabledActionFilterAttribute>))] public class LogController : Controller { private readonly ILogService _logService; + private readonly IConfigFileProvider _configFileProvider; - public LogController(ILogService logService) + public LogController(ILogService logService, IConfigFileProvider configFileProvider) { _logService = logService; + _configFileProvider = configFileProvider; } [HttpGet] [Produces("application/json")] public PagingResource GetLogs([FromQuery] PagingRequestResource paging, string level) { + if (!_configFileProvider.LogDbEnabled) + { + return new PagingResource(); + } + var pagingResource = new PagingResource(paging); var pageSpec = pagingResource.MapToPagingSpec(); diff --git a/src/Sonarr.Api.V3/Update/UpdateController.cs b/src/Sonarr.Api.V3/Update/UpdateController.cs index c6efbfe4f..8c26b106c 100644 --- a/src/Sonarr.Api.V3/Update/UpdateController.cs +++ b/src/Sonarr.Api.V3/Update/UpdateController.cs @@ -2,24 +2,25 @@ using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Mvc; using NzbDrone.Common.EnvironmentInfo; +using NzbDrone.Core.Configuration; using NzbDrone.Core.Update; using NzbDrone.Core.Update.History; using Sonarr.Http; -using Sonarr.Http.REST.Filters; namespace Sonarr.Api.V3.Update { [V3ApiController] - [TypeFilter(typeof(LogDatabaseDisabledActionFilterAttribute>))] public class UpdateController : Controller { private readonly IRecentUpdateProvider _recentUpdateProvider; private readonly IUpdateHistoryService _updateHistoryService; + private readonly IConfigFileProvider _configFileProvider; - public UpdateController(IRecentUpdateProvider recentUpdateProvider, IUpdateHistoryService updateHistoryService) + public UpdateController(IRecentUpdateProvider recentUpdateProvider, IUpdateHistoryService updateHistoryService, IConfigFileProvider configFileProvider) { _recentUpdateProvider = recentUpdateProvider; _updateHistoryService = updateHistoryService; + _configFileProvider = configFileProvider; } [HttpGet] @@ -47,7 +48,11 @@ namespace Sonarr.Api.V3.Update installed.Installed = true; } - var installDates = _updateHistoryService.InstalledSince(resources.Last().ReleaseDate) + var updateHistory = _configFileProvider.LogDbEnabled + ? _updateHistoryService.InstalledSince(resources.Last().ReleaseDate) + : new List(); + + var installDates = updateHistory .DistinctBy(v => v.Version) .ToDictionary(v => v.Version); diff --git a/src/Sonarr.Http/REST/Filters/LogDatabaseDisabledActionFilterAttribute.cs b/src/Sonarr.Http/REST/Filters/LogDatabaseDisabledActionFilterAttribute.cs deleted file mode 100644 index 66afc6b21..000000000 --- a/src/Sonarr.Http/REST/Filters/LogDatabaseDisabledActionFilterAttribute.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; -using Microsoft.Extensions.DependencyInjection; -using NzbDrone.Core.Configuration; - -namespace Sonarr.Http.REST.Filters; - -public class LogDatabaseDisabledActionFilterAttribute : IActionFilter - where TResult : class, new() -{ - public void OnActionExecuting(ActionExecutingContext context) - { - var configFileProvider = context.HttpContext.RequestServices.GetService(); - if (!configFileProvider.LogDbEnabled) - { - context.Result = new OkObjectResult(new TResult()); - } - } - - public void OnActionExecuted(ActionExecutedContext context) - { - } -}