You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/src/Trash/Radarr/Api/RadarrApi.cs

47 lines
1.4 KiB

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
using Trash.Config;
using Trash.Radarr.Api.Objects;
namespace Trash.Radarr.Api
{
public class RadarrApi : IRadarrApi
{
private readonly IConfigurationProvider<RadarrConfiguration> _config;
public RadarrApi(IConfigurationProvider<RadarrConfiguration> config)
{
_config = config;
}
public async Task<List<RadarrQualityDefinitionItem>> GetQualityDefinition()
{
return await BaseUrl()
.AppendPathSegment("qualitydefinition")
.GetJsonAsync<List<RadarrQualityDefinitionItem>>();
}
public async Task<List<RadarrQualityDefinitionItem>> UpdateQualityDefinition(
List<RadarrQualityDefinitionItem> newQuality)
{
return await BaseUrl()
.AppendPathSegment("qualityDefinition/update")
.PutJsonAsync(newQuality)
.ReceiveJson<List<RadarrQualityDefinitionItem>>();
}
private string BaseUrl()
{
if (_config.ActiveConfiguration == null)
{
throw new InvalidOperationException("No active configuration available for API method");
}
return _config.ActiveConfiguration.BuildUrl();
}
}
}