Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public List <ReadarrTag> GetTags(ReadarrSettings settings)
 {
     return(Execute <ReadarrTag>("/api/v1/tag", settings));
 }
Пример #4
0
 public List <ReadarrProfile> GetProfiles(ReadarrSettings settings)
 {
     return(Execute <ReadarrProfile>("/api/v1/qualityprofile", settings));
 }
Пример #5
0
 public List <ReadarrBook> GetBooks(ReadarrSettings settings)
 {
     return(Execute <ReadarrBook>("/api/v1/book", settings));
 }
Пример #6
0
 public List <ReadarrAuthor> GetAuthors(ReadarrSettings settings)
 {
     return(Execute <ReadarrAuthor>("/api/v1/author", settings));
 }