< Summary

Information
Class: Chronicis.Client.Services.ArticleExternalLinkApiService
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Services/ArticleExternalLinkApiService.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 37
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Client/Services/ArticleExternalLinkApiService.cs

#LineLine coverage
 1using System.Net.Http.Json;
 2using Chronicis.Shared.DTOs;
 3
 4namespace Chronicis.Client.Services;
 5
 6/// <summary>
 7/// Service for interacting with the Article External Links API.
 8/// </summary>
 9public class ArticleExternalLinkApiService : IArticleExternalLinkApiService
 10{
 11    private readonly HttpClient _httpClient;
 12    private readonly ILogger<ArticleExternalLinkApiService> _logger;
 13
 14    public ArticleExternalLinkApiService(
 15        HttpClient httpClient,
 16        ILogger<ArticleExternalLinkApiService> logger)
 17    {
 218        _httpClient = httpClient;
 219        _logger = logger;
 220    }
 21
 22    public async Task<List<ArticleExternalLinkDto>> GetExternalLinksAsync(Guid articleId)
 23    {
 24        try
 25        {
 26            var response = await _httpClient.GetFromJsonAsync<List<ArticleExternalLinkDto>>(
 27                $"articles/{articleId}/external-links");
 28
 29            return response ?? new List<ArticleExternalLinkDto>();
 30        }
 31        catch (Exception ex)
 32        {
 33            _logger.LogError(ex, "Error retrieving external links for article {ArticleId}", articleId);
 34            return new List<ArticleExternalLinkDto>();
 35        }
 36    }
 37}