diff --git a/Ombi.UI/Modules/Admin/AdminModule.cs b/Ombi.UI/Modules/Admin/AdminModule.cs index 06533b7d3..0a6f1c7e0 100644 --- a/Ombi.UI/Modules/Admin/AdminModule.cs +++ b/Ombi.UI/Modules/Admin/AdminModule.cs @@ -184,9 +184,6 @@ namespace Ombi.UI.Modules.Admin Post["/sonarr"] = _ => SaveSonarr(); Post["/sonarrprofiles"] = _ => GetSonarrQualityProfiles(); - Get["/radarr", true] = async (x, ct) => await Radarr(); - Post["/radarr", true] = async (x, ct) => await SaveRadarr(); - Post["/radarrprofiles"] = _ => GetRadarrQualityProfiles(); Get["/sickrage"] = _ => Sickrage(); Post["/sickrage"] = _ => SaveSickrage(); @@ -486,57 +483,9 @@ namespace Ombi.UI.Modules.Admin : new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." }); } - private async Task Radarr() - { - var settings = await RadarrSettings.GetSettingsAsync(); - - return View["Radarr", settings]; - } - - private async Task SaveRadarr() - { - var radarrSettings = this.Bind(); - - //Check Watcher and CP make sure they are not enabled - var watcher = await WatcherSettings.GetSettingsAsync(); - if (watcher.Enabled) - { - return Response.AsJson(new JsonResponseModel { Result = false, Message = "Watcher is enabled, we cannot enable Watcher and Radarr" }); - } - - var cp = await CpService.GetSettingsAsync(); - if (cp.Enabled) - { - return Response.AsJson(new JsonResponseModel { Result = false, Message = "CouchPotato is enabled, we cannot enable Watcher and CouchPotato" }); - } - - var valid = this.Validate(radarrSettings); - if (!valid.IsValid) - { - return Response.AsJson(valid.SendJsonError()); - } - - radarrSettings.ApiKey = radarrSettings.ApiKey.Trim(); - var result = await RadarrSettings.SaveSettingsAsync(radarrSettings); - - return Response.AsJson(result - ? new JsonResponseModel { Result = true, Message = "Successfully Updated the Settings for Radarr!" } - : new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." }); - } - - private Response GetRadarrQualityProfiles() - { - var settings = this.Bind(); - var profiles = RadarrApi.GetProfiles(settings.ApiKey, settings.FullUri); + - // set the cache - if (profiles != null) - { - Cache.Set(CacheKeys.RadarrQualityProfiles, profiles); - } - - return Response.AsJson(profiles); - } + private Negotiator Sickrage() { diff --git a/Ombi.UI/Modules/Admin/IntegrationModule.cs b/Ombi.UI/Modules/Admin/IntegrationModule.cs index b8a91e520..1322e7c64 100644 --- a/Ombi.UI/Modules/Admin/IntegrationModule.cs +++ b/Ombi.UI/Modules/Admin/IntegrationModule.cs @@ -36,6 +36,7 @@ using Nancy; using Nancy.ModelBinding; using Nancy.Responses.Negotiation; using Nancy.Validation; +using Ombi.Api.Interfaces; using Ombi.Core; using Ombi.Core.SettingModels; using Ombi.Core.StatusChecker; @@ -52,21 +53,34 @@ namespace Ombi.UI.Modules.Admin public class IntegrationModule : BaseModule { public IntegrationModule(ISettingsService settingsService, ISettingsService watcher, - ISettingsService cp,ISecurityExtensions security, IAnalytics a) : base("admin", settingsService, security) + ISettingsService cp,ISecurityExtensions security, IAnalytics a, ISettingsService radarrSettings, + ICacheProvider cache, IRadarrApi radarrApi) : base("admin", settingsService, security) { WatcherSettings = watcher; Analytics = a; CpSettings = cp; + Cache = cache; + RadarrApi = radarrApi; + RadarrSettings = radarrSettings; Before += (ctx) => Security.AdminLoginRedirect(Permissions.Administrator, ctx); Get["/watcher", true] = async (x, ct) => await Watcher(); Post["/watcher", true] = async (x, ct) => await SaveWatcher(); + + Get["/radarr", true] = async (x, ct) => await Radarr(); + Post["/radarr", true] = async (x, ct) => await SaveRadarr(); + + + Post["/radarrprofiles"] = _ => GetRadarrQualityProfiles(); } private ISettingsService WatcherSettings { get; } private ISettingsService CpSettings { get; } + private ISettingsService RadarrSettings { get; } + private IRadarrApi RadarrApi { get; } + private ICacheProvider Cache { get; } private IAnalytics Analytics { get; } private async Task Watcher() @@ -97,15 +111,15 @@ namespace Ombi.UI.Modules.Admin }); } - var watcherSettings = await WatcherSettings.GetSettingsAsync(); + var radarrSettings = await RadarrSettings.GetSettingsAsync(); - if (watcherSettings.Enabled) + if (radarrSettings.Enabled) { return Response.AsJson(new JsonResponseModel { Result = false, - Message = "Cannot have Watcher and CouchPotato both enabled." + Message = "Cannot have Radarr and CouchPotato both enabled." }); } @@ -116,5 +130,57 @@ namespace Ombi.UI.Modules.Admin : new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." }); } + private async Task Radarr() + { + var settings = await RadarrSettings.GetSettingsAsync(); + + return View["Radarr", settings]; + } + + private async Task SaveRadarr() + { + var radarrSettings = this.Bind(); + + //Check Watcher and CP make sure they are not enabled + var watcher = await WatcherSettings.GetSettingsAsync(); + if (watcher.Enabled) + { + return Response.AsJson(new JsonResponseModel { Result = false, Message = "Watcher is enabled, we cannot enable Watcher and Radarr" }); + } + + var cp = await CpSettings.GetSettingsAsync(); + if (cp.Enabled) + { + return Response.AsJson(new JsonResponseModel { Result = false, Message = "CouchPotato is enabled, we cannot enable Watcher and CouchPotato" }); + } + + var valid = this.Validate(radarrSettings); + if (!valid.IsValid) + { + return Response.AsJson(valid.SendJsonError()); + } + + radarrSettings.ApiKey = radarrSettings.ApiKey.Trim(); + var result = await RadarrSettings.SaveSettingsAsync(radarrSettings); + + return Response.AsJson(result + ? new JsonResponseModel { Result = true, Message = "Successfully Updated the Settings for Radarr!" } + : new JsonResponseModel { Result = false, Message = "Could not update the settings, take a look at the logs." }); + } + + private Response GetRadarrQualityProfiles() + { + var settings = this.Bind(); + var profiles = RadarrApi.GetProfiles(settings.ApiKey, settings.FullUri); + + // set the cache + if (profiles != null) + { + Cache.Set(CacheKeys.RadarrQualityProfiles, profiles); + } + + return Response.AsJson(profiles); + } + } } \ No newline at end of file