public ValidationFailure Test(ReadarrSettings settings) { try { GetAuthors(settings); } catch (HttpException ex) { if (ex.Response.StatusCode == HttpStatusCode.Unauthorized) { _logger.Error(ex, "API Key is invalid"); return(new ValidationFailure("ApiKey", "API Key is invalid")); } _logger.Error(ex, "Unable to send test message"); return(new ValidationFailure("ApiKey", "Unable to send test message")); } catch (Exception ex) { _logger.Error(ex, "Unable to send test message"); return(new ValidationFailure("", "Unable to send test message")); } return(null); }
private List <TResource> Execute <TResource>(string resource, ReadarrSettings settings) { if (settings.BaseUrl.IsNullOrWhiteSpace() || settings.ApiKey.IsNullOrWhiteSpace()) { return(new List <TResource>()); } var baseUrl = settings.BaseUrl.TrimEnd('/'); var request = new HttpRequestBuilder(baseUrl).Resource(resource).Accept(HttpAccept.Json) .SetHeader("X-Api-Key", settings.ApiKey).Build(); var response = _httpClient.Get(request); var results = JsonConvert.DeserializeObject <List <TResource> >(response.Content); return(results); }
public List <ReadarrTag> GetTags(ReadarrSettings settings) { return(Execute <ReadarrTag>("/api/v1/tag", settings)); }
public List <ReadarrProfile> GetProfiles(ReadarrSettings settings) { return(Execute <ReadarrProfile>("/api/v1/qualityprofile", settings)); }
public List <ReadarrBook> GetBooks(ReadarrSettings settings) { return(Execute <ReadarrBook>("/api/v1/book", settings)); }
public List <ReadarrAuthor> GetAuthors(ReadarrSettings settings) { return(Execute <ReadarrAuthor>("/api/v1/author", settings)); }