From 9413c7bb4899de4c22aa9876b5b3c4df447d5379 Mon Sep 17 00:00:00 2001 From: Jamie Rees Date: Tue, 7 May 2019 08:23:49 +0100 Subject: [PATCH] Added the tags API into Ombi. Just need to figure out the rest --- src/Ombi.Api.Radarr/IRadarrApi.cs | 1 + src/Ombi.Api.Radarr/Models/Tag.cs | 8 +++++ src/Ombi.Api.Radarr/RadarrApi.cs | 8 +++++ src/Ombi.Api.Sonarr/ISonarrApi.cs | 1 + src/Ombi.Api.Sonarr/Models/Tag.cs | 8 +++++ src/Ombi.Api.Sonarr/SonarrApi.cs | 8 +++++ .../V1/External/RadarrController.cs | 31 +++++++++++++++++++ .../V1/External/SonarrController.cs | 30 ++++++++++++++++++ 8 files changed, 95 insertions(+) create mode 100644 src/Ombi.Api.Radarr/Models/Tag.cs create mode 100644 src/Ombi.Api.Sonarr/Models/Tag.cs diff --git a/src/Ombi.Api.Radarr/IRadarrApi.cs b/src/Ombi.Api.Radarr/IRadarrApi.cs index a23f6d3f5..b675dba96 100644 --- a/src/Ombi.Api.Radarr/IRadarrApi.cs +++ b/src/Ombi.Api.Radarr/IRadarrApi.cs @@ -14,5 +14,6 @@ namespace Ombi.Api.Radarr Task UpdateMovie(MovieResponse movie, string apiKey, string baseUrl); Task MovieSearch(int[] movieIds, string apiKey, string baseUrl); Task AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath,string apiKey, string baseUrl, bool searchNow, string minimumAvailability); + Task> GetTags(string apiKey, string baseUrl); } } \ No newline at end of file diff --git a/src/Ombi.Api.Radarr/Models/Tag.cs b/src/Ombi.Api.Radarr/Models/Tag.cs new file mode 100644 index 000000000..790ddacdf --- /dev/null +++ b/src/Ombi.Api.Radarr/Models/Tag.cs @@ -0,0 +1,8 @@ +namespace Ombi.Api.Radarr.Models +{ + public class Tag + { + public int id { get; set; } + public string label { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi.Api.Radarr/RadarrApi.cs b/src/Ombi.Api.Radarr/RadarrApi.cs index fd4deb140..28c838a80 100644 --- a/src/Ombi.Api.Radarr/RadarrApi.cs +++ b/src/Ombi.Api.Radarr/RadarrApi.cs @@ -123,6 +123,14 @@ namespace Ombi.Api.Radarr { var result = await Command(apiKey, baseUrl, new { name = "MoviesSearch", movieIds }); return result != null; + } + + public async Task> GetTags(string apiKey, string baseUrl) + { + var request = new Request("/api/tag", baseUrl, HttpMethod.Get); + AddHeaders(request, apiKey); + + return await Api.Request>(request); } private async Task Command(string apiKey, string baseUrl, object body) diff --git a/src/Ombi.Api.Sonarr/ISonarrApi.cs b/src/Ombi.Api.Sonarr/ISonarrApi.cs index 9816b9604..5bc8ca54b 100644 --- a/src/Ombi.Api.Sonarr/ISonarrApi.cs +++ b/src/Ombi.Api.Sonarr/ISonarrApi.cs @@ -21,5 +21,6 @@ namespace Ombi.Api.Sonarr Task SeriesSearch(int seriesId, string apiKey, string baseUrl); Task SystemStatus(string apiKey, string baseUrl); Task SeasonPass(string apiKey, string baseUrl, SonarrSeries series); + Task> GetTags(string apiKey, string baseUrl); } } \ No newline at end of file diff --git a/src/Ombi.Api.Sonarr/Models/Tag.cs b/src/Ombi.Api.Sonarr/Models/Tag.cs new file mode 100644 index 000000000..3cd89730b --- /dev/null +++ b/src/Ombi.Api.Sonarr/Models/Tag.cs @@ -0,0 +1,8 @@ +namespace Ombi.Api.Sonarr.Models +{ + public class Tag + { + public int id { get; set; } + public string label { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi.Api.Sonarr/SonarrApi.cs b/src/Ombi.Api.Sonarr/SonarrApi.cs index 0b0df4c15..d2df50cd9 100644 --- a/src/Ombi.Api.Sonarr/SonarrApi.cs +++ b/src/Ombi.Api.Sonarr/SonarrApi.cs @@ -225,5 +225,13 @@ namespace Ombi.Api.Sonarr var content = await Api.RequestContent(request); return content.Equals("ok", StringComparison.CurrentCultureIgnoreCase); } + + public async Task> GetTags(string apiKey, string baseUrl) + { + var request = new Request($"{ApiBaseUrl}tag", baseUrl, HttpMethod.Get); + request.AddHeader("X-Api-Key", apiKey); + + return await Api.Request>(request); + } } } diff --git a/src/Ombi/Controllers/V1/External/RadarrController.cs b/src/Ombi/Controllers/V1/External/RadarrController.cs index fbad769a4..1f3cf3118 100644 --- a/src/Ombi/Controllers/V1/External/RadarrController.cs +++ b/src/Ombi/Controllers/V1/External/RadarrController.cs @@ -93,5 +93,36 @@ namespace Ombi.Controllers.V1.External } return null; } + + /// + /// Gets the Radarr tags + /// + /// The settings. + /// + [HttpPost("tags")] + [PowerUser] + public async Task> GetTags([FromBody] SonarrSettings settings) + { + return await RadarrApi.GetTags(settings.ApiKey, settings.FullUri); + } + + + /// + /// Gets the Radarr tags + /// + /// The settings. + /// + [HttpPost("tags")] + [PowerUser] + public async Task> GetTags() + { + var settings = await RadarrSettings.GetSettingsAsync(); + if (settings.Enabled) + { + return await RadarrApi.GetTags(settings.ApiKey, settings.FullUri); + } + + return null; + } } } \ No newline at end of file diff --git a/src/Ombi/Controllers/V1/External/SonarrController.cs b/src/Ombi/Controllers/V1/External/SonarrController.cs index 01aff7863..97b2bde0f 100644 --- a/src/Ombi/Controllers/V1/External/SonarrController.cs +++ b/src/Ombi/Controllers/V1/External/SonarrController.cs @@ -101,6 +101,36 @@ namespace Ombi.Controllers.V1.External return null; } + /// + /// Gets the Sonarr tags + /// + /// The settings. + /// + [HttpPost("tags")] + [PowerUser] + public async Task> GetTags([FromBody] SonarrSettings settings) + { + return await SonarrApi.GetTags(settings.ApiKey, settings.FullUri); + } + + + /// + /// Gets the Sonarr tags + /// + /// The settings. + /// + [HttpPost("tags")] + [PowerUser] + public async Task> GetTags() + { + var settings = await SonarrSettings.GetSettingsAsync(); + if (settings.Enabled) + { + return await SonarrApi.GetTags(settings.ApiKey, settings.FullUri); + } + + return null; + } /// /// Gets the Sonarr V3 language profiles