< Summary

Information
Class: Chronicis.Client.Services.TutorialApiService
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Services/TutorialApiService.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 32
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/TutorialApiService.cs

#LineLine coverage
 1using Chronicis.Shared.DTOs;
 2
 3namespace Chronicis.Client.Services;
 4
 5/// <summary>
 6/// Client API service for tutorial resolve endpoints.
 7/// </summary>
 8public class TutorialApiService : ITutorialApiService
 9{
 10    private readonly HttpClient _http;
 11    private readonly ILogger<TutorialApiService> _logger;
 12
 13    public TutorialApiService(HttpClient http, ILogger<TutorialApiService> logger)
 14    {
 215        _http = http;
 216        _logger = logger;
 217    }
 18
 19    public async Task<TutorialDto?> ResolveAsync(string pageType)
 20    {
 21        if (string.IsNullOrWhiteSpace(pageType))
 22        {
 23            return null;
 24        }
 25
 26        var encodedPageType = Uri.EscapeDataString(pageType);
 27        return await _http.GetEntityAsync<TutorialDto>(
 28            $"tutorials/resolve?pageType={encodedPageType}",
 29            _logger,
 30            $"tutorial for page type '{pageType}'");
 31    }
 32}