using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Ombi.Api.Radarr; using Ombi.Api.Radarr.Models; using Ombi.Api.Radarr.Models.V3; using Ombi.Attributes; using Ombi.Core.Settings; using Ombi.Helpers; using Ombi.Settings.Settings.Models.External; namespace Ombi.Controllers.V1.External { [Authorize] [ApiV1] [ApiController] [Produces("application/json")] public class RadarrController : ControllerBase { public RadarrController( ISettingsService settings, ISettingsService radarr4kSettings, IRadarrV3Api radarrV3Api) { _radarrSettings = settings; _radarr4KSettings = radarr4kSettings; _radarrV3Api = radarrV3Api; } private readonly ISettingsService _radarrSettings; private readonly ISettingsService _radarr4KSettings; private readonly IRadarrV3Api _radarrV3Api; /// /// Gets the Radarr profiles. /// /// The settings. /// [HttpPost("Profiles")] [PowerUser] public async Task GetProfiles([FromBody] RadarrSettings settings) { return Ok(await _radarrV3Api.GetProfiles(settings.ApiKey, settings.FullUri)); } [HttpGet("enabled")] [PowerUser] public async Task Enabled() { var settings = await _radarrSettings.GetSettingsAsync(); return settings.Enabled; } /// /// Gets the Radarr root folders. /// /// The settings. /// [HttpPost("RootFolders")] [PowerUser] public async Task> GetRootFolders([FromBody] RadarrSettings settings) { return await _radarrV3Api.GetRootFolders(settings.ApiKey, settings.FullUri); } /// /// Gets the Radarr profiles using the saved settings /// The data is cached for an hour /// /// [HttpGet("Profiles")] [PowerUser] public async Task GetProfiles() { var settings = await _radarrSettings.GetSettingsAsync(); if (settings.Enabled) { return Ok(await _radarrV3Api.GetProfiles(settings.ApiKey, settings.FullUri)); } return Ok(new List()); } /// /// Gets the Radarr 4K profiles using the saved settings /// The data is cached for an hour /// /// [HttpGet("Profiles/4k")] [PowerUser] public async Task GetProfiles4K() { var settings = await _radarr4KSettings.GetSettingsAsync(); if (settings.Enabled) { return Ok(await _radarrV3Api.GetProfiles(settings.ApiKey, settings.FullUri)); } return Ok(new List()); } /// /// Gets the Radarr root folders using the saved settings. /// The data is cached for an hour /// /// [HttpGet("RootFolders")] [PowerUser] public async Task> GetRootFolders() { var settings = await _radarrSettings.GetSettingsAsync(); if (settings.Enabled) { return await _radarrV3Api.GetRootFolders(settings.ApiKey, settings.FullUri); } return null; } /// /// Gets the Radarr 4K root folders using the saved settings. /// The data is cached for an hour /// /// [HttpGet("RootFolders/4k")] [PowerUser] public async Task> GetRootFolders4K() { var settings = await _radarr4KSettings.GetSettingsAsync(); if (settings.Enabled) { return await _radarrV3Api.GetRootFolders(settings.ApiKey, settings.FullUri); } return null; } /// /// Gets the Radarr tags /// /// The settings. /// [HttpPost("tags")] [PowerUser] public async Task> GetTags([FromBody] SonarrSettings settings) { return await _radarrV3Api.GetTags(settings.ApiKey, settings.FullUri); } /// /// Gets the Radarr tags /// /// [HttpGet("tags")] [PowerUser] public async Task> GetTags() { var settings = await _radarrSettings.GetSettingsAsync(); if (settings.Enabled) { return await _radarrV3Api.GetTags(settings.ApiKey, settings.FullUri); } return null; } } }