diff --git a/src/FilterLists.Agent/Infrastructure/Repositories/UrlRepository.cs b/src/FilterLists.Agent/Infrastructure/Repositories/UrlRepository.cs index dca9ebcaa..575fc6d24 100644 --- a/src/FilterLists.Agent/Infrastructure/Repositories/UrlRepository.cs +++ b/src/FilterLists.Agent/Infrastructure/Repositories/UrlRepository.cs @@ -10,7 +10,6 @@ using FilterLists.Agent.Extensions; using FilterLists.Agent.Features.Urls.Models.DataFileUrls; using FilterLists.Agent.Features.Urls.Models.ValidationResults; -using FilterLists.Agent.Infrastructure.Clients; using JetBrains.Annotations; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; @@ -30,12 +29,12 @@ public class UrlRepository : IUrlRepository {nameof(SyntaxUrls), "syntaxes"} }; - private readonly IFilterListsApiClient _apiClient; + private readonly IRestClient _apiClient; private readonly HttpClient _httpClient; private readonly IStringLocalizer _localizer; private readonly ILogger _logger; - public UrlRepository(IFilterListsApiClient apiClient, HttpClient httpClient, + public UrlRepository(IRestClient apiClient, HttpClient httpClient, IStringLocalizer stringLocalizer, ILogger logger) { _apiClient = apiClient; @@ -55,8 +54,11 @@ public async Task> GetAllAsync(CancellationToken cancel if (!EntityUrlsEndpoints.ContainsKey(typeof(TModel).Name)) throw new InvalidEnumArgumentException(_localizer["The type of TModel is not valid."]); var request = new RestRequest($"{EntityUrlsEndpoints[typeof(TModel).Name]}/seed"); - var response = await _apiClient.ExecuteAsync>(request, cancellationToken); - return response.SelectMany(r => + var response = await _apiClient.ExecuteTaskAsync>(request, cancellationToken); + if (response.ErrorException != null) + _logger.LogError(response.ErrorException, + _localizer["Error retrieving response from the FilterLists API."]); + return response.Data.SelectMany(r => r.GetType().GetProperties().Where(p => p.GetValue(r) != null).Select(p => (Uri)p.GetValue(r))); }