Added the tags API into Ombi. Just need to figure out the rest

This commit is contained in:
Jamie Rees 2019-05-07 08:23:49 +01:00
commit 9413c7bb48
8 changed files with 95 additions and 0 deletions

View file

@ -14,5 +14,6 @@ namespace Ombi.Api.Radarr
Task<MovieResponse> UpdateMovie(MovieResponse movie, string apiKey, string baseUrl); Task<MovieResponse> UpdateMovie(MovieResponse movie, string apiKey, string baseUrl);
Task<bool> MovieSearch(int[] movieIds, string apiKey, string baseUrl); Task<bool> MovieSearch(int[] movieIds, string apiKey, string baseUrl);
Task<RadarrAddMovieResponse> AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath,string apiKey, string baseUrl, bool searchNow, string minimumAvailability); Task<RadarrAddMovieResponse> AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath,string apiKey, string baseUrl, bool searchNow, string minimumAvailability);
Task<List<Tag>> GetTags(string apiKey, string baseUrl);
} }
} }

View file

@ -0,0 +1,8 @@
namespace Ombi.Api.Radarr.Models
{
public class Tag
{
public int id { get; set; }
public string label { get; set; }
}
}

View file

@ -125,6 +125,14 @@ namespace Ombi.Api.Radarr
return result != null; return result != null;
} }
public async Task<List<Tag>> GetTags(string apiKey, string baseUrl)
{
var request = new Request("/api/tag", baseUrl, HttpMethod.Get);
AddHeaders(request, apiKey);
return await Api.Request<List<Tag>>(request);
}
private async Task<CommandResult> Command(string apiKey, string baseUrl, object body) private async Task<CommandResult> Command(string apiKey, string baseUrl, object body)
{ {
var request = new Request($"/api/Command/", baseUrl, HttpMethod.Post); var request = new Request($"/api/Command/", baseUrl, HttpMethod.Post);

View file

@ -21,5 +21,6 @@ namespace Ombi.Api.Sonarr
Task<bool> SeriesSearch(int seriesId, string apiKey, string baseUrl); Task<bool> SeriesSearch(int seriesId, string apiKey, string baseUrl);
Task<SystemStatus> SystemStatus(string apiKey, string baseUrl); Task<SystemStatus> SystemStatus(string apiKey, string baseUrl);
Task<bool> SeasonPass(string apiKey, string baseUrl, SonarrSeries series); Task<bool> SeasonPass(string apiKey, string baseUrl, SonarrSeries series);
Task<List<Tag>> GetTags(string apiKey, string baseUrl);
} }
} }

View file

@ -0,0 +1,8 @@
namespace Ombi.Api.Sonarr.Models
{
public class Tag
{
public int id { get; set; }
public string label { get; set; }
}
}

View file

@ -225,5 +225,13 @@ namespace Ombi.Api.Sonarr
var content = await Api.RequestContent(request); var content = await Api.RequestContent(request);
return content.Equals("ok", StringComparison.CurrentCultureIgnoreCase); return content.Equals("ok", StringComparison.CurrentCultureIgnoreCase);
} }
public async Task<List<Tag>> GetTags(string apiKey, string baseUrl)
{
var request = new Request($"{ApiBaseUrl}tag", baseUrl, HttpMethod.Get);
request.AddHeader("X-Api-Key", apiKey);
return await Api.Request<List<Tag>>(request);
}
} }
} }

View file

@ -93,5 +93,36 @@ namespace Ombi.Controllers.V1.External
} }
return null; return null;
} }
/// <summary>
/// Gets the Radarr tags
/// </summary>
/// <param name="settings">The settings.</param>
/// <returns></returns>
[HttpPost("tags")]
[PowerUser]
public async Task<IEnumerable<Tag>> GetTags([FromBody] SonarrSettings settings)
{
return await RadarrApi.GetTags(settings.ApiKey, settings.FullUri);
}
/// <summary>
/// Gets the Radarr tags
/// </summary>
/// <param name="settings">The settings.</param>
/// <returns></returns>
[HttpPost("tags")]
[PowerUser]
public async Task<IEnumerable<Tag>> GetTags()
{
var settings = await RadarrSettings.GetSettingsAsync();
if (settings.Enabled)
{
return await RadarrApi.GetTags(settings.ApiKey, settings.FullUri);
}
return null;
}
} }
} }

View file

@ -101,6 +101,36 @@ namespace Ombi.Controllers.V1.External
return null; return null;
} }
/// <summary>
/// Gets the Sonarr tags
/// </summary>
/// <param name="settings">The settings.</param>
/// <returns></returns>
[HttpPost("tags")]
[PowerUser]
public async Task<IEnumerable<Tag>> GetTags([FromBody] SonarrSettings settings)
{
return await SonarrApi.GetTags(settings.ApiKey, settings.FullUri);
}
/// <summary>
/// Gets the Sonarr tags
/// </summary>
/// <param name="settings">The settings.</param>
/// <returns></returns>
[HttpPost("tags")]
[PowerUser]
public async Task<IEnumerable<Tag>> GetTags()
{
var settings = await SonarrSettings.GetSettingsAsync();
if (settings.Enabled)
{
return await SonarrApi.GetTags(settings.ApiKey, settings.FullUri);
}
return null;
}
/// <summary> /// <summary>
/// Gets the Sonarr V3 language profiles /// Gets the Sonarr V3 language profiles