< Summary

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

#LineLine coverage
 1using System.Net.Http.Json;
 2using Chronicis.Shared.DTOs;
 3
 4namespace Chronicis.Client.Services;
 5
 6/// <summary>
 7/// Implementation of user profile API service.
 8/// </summary>
 9public class UserApiService : IUserApiService
 10{
 11    private readonly HttpClient _http;
 12    private readonly ILogger<UserApiService> _logger;
 13
 14    public UserApiService(HttpClient http, ILogger<UserApiService> logger)
 15    {
 516        _http = http;
 517        _logger = logger;
 518    }
 19
 20    public async Task<UserProfileDto?> GetUserProfileAsync()
 21    {
 22        try
 23        {
 24            return await _http.GetFromJsonAsync<UserProfileDto>("users/me");
 25        }
 26        catch (HttpRequestException ex) when (ex.StatusCode == System.Net.HttpStatusCode.NotFound)
 27        {
 28            _logger.LogWarning("User profile not found");
 29            return null;
 30        }
 31        catch (Exception ex)
 32        {
 33            _logger.LogError(ex, "Error fetching user profile");
 34            return null;
 35        }
 36    }
 37
 38    public async Task<bool> CompleteOnboardingAsync()
 39    {
 40        try
 41        {
 42            var response = await _http.PostAsync("users/me/complete-onboarding", null);
 43            return response.IsSuccessStatusCode;
 44        }
 45        catch (Exception ex)
 46        {
 47            _logger.LogError(ex, "Error completing onboarding");
 48            return false;
 49        }
 50    }
 51}