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 _config; public RadarrApi(IConfigurationProvider config) { _config = config; } public async Task> GetQualityDefinition() { return await BaseUrl() .AppendPathSegment("qualitydefinition") .GetJsonAsync>(); } public async Task> UpdateQualityDefinition( List newQuality) { return await BaseUrl() .AppendPathSegment("qualityDefinition/update") .PutJsonAsync(newQuality) .ReceiveJson>(); } private string BaseUrl() { if (_config.ActiveConfiguration == null) { throw new InvalidOperationException("No active configuration available for API method"); } return _config.ActiveConfiguration.BuildUrl(); } } }