< Summary

Information
Class: Chronicis.Api.Controllers.DashboardController
Assembly: Chronicis.Api
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Api/Controllers/DashboardController.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 42
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.Api/Controllers/DashboardController.cs

#LineLine coverage
 1using Chronicis.Api.Infrastructure;
 2using Chronicis.Api.Services;
 3using Chronicis.Shared.DTOs;
 4using Microsoft.AspNetCore.Authorization;
 5using Microsoft.AspNetCore.Mvc;
 6
 7namespace Chronicis.Api.Controllers;
 8
 9/// <summary>
 10/// API endpoints for Dashboard data.
 11/// </summary>
 12[ApiController]
 13[Route("dashboard")]
 14[Authorize]
 15public class DashboardController : ControllerBase
 16{
 17    private readonly IDashboardReadService _dashboardReadService;
 18    private readonly ICurrentUserService _currentUserService;
 19    private readonly ILogger<DashboardController> _logger;
 20
 121    public DashboardController(
 122        IDashboardReadService dashboardReadService,
 123        ICurrentUserService currentUserService,
 124        ILogger<DashboardController> logger)
 25    {
 126        _dashboardReadService = dashboardReadService;
 127        _currentUserService = currentUserService;
 128        _logger = logger;
 129    }
 30
 31    /// <summary>
 32    /// GET /api/dashboard - Get aggregated dashboard data for the current user.
 33    /// </summary>
 34    [HttpGet]
 35    public async Task<ActionResult<DashboardDto>> GetDashboard()
 36    {
 37        var user = await _currentUserService.GetRequiredUserAsync();
 38        _logger.LogTraceSanitized("Getting dashboard for user {UserId}", user.Id);
 39        var dashboard = await _dashboardReadService.GetDashboardAsync(user.Id, user.DisplayName);
 40        return Ok(dashboard);
 41    }
 42}