< Summary

Information
Class: Despesas.Backend.Controllers.AuthController
Assembly: Despesas.Backend
File(s): /src/Despesas.Backend/Controllers/AuthController.cs
Line coverage
6%
Covered lines: 1
Uncovered lines: 14
Coverable lines: 15
Total lines: 37
Line coverage: 6.6%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

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

File(s)

/src/Despesas.Backend/Controllers/AuthController.cs

#LineLine coverage
 1using Despesas.Backend.Controllers.Abstractions;
 2using Domain.Core.ValueObject;
 3using Microsoft.AspNetCore.Mvc;
 4using System.IdentityModel.Tokens.Jwt;
 5
 6namespace Despesas.Backend.Controllers;
 7
 8[Route("api/[controller]")]
 9[ApiController]
 10public class AuthController : UnitControllerBase
 11{
 26112    public AuthController() : base() { }
 13    protected PerfilUsuario PerfilUsuario
 14    {
 15        get
 016        {
 17            try
 018            {
 019                var tokenHandler = new JwtSecurityTokenHandler();
 020                var token = HttpContext.Request.Headers.Authorization.ToString();
 021                var jwtToken = tokenHandler.ReadToken(token.Replace("Bearer ", "")) as JwtSecurityToken;
 022                var roleClaim = jwtToken.Claims.FirstOrDefault(c => c.Type == "role")?.Value;
 023                if (roleClaim == null) throw new ArgumentNullException();
 24
 025                if (!Enum.TryParse<PerfilUsuario.Perfil>(roleClaim, out var perfilEnum))
 026                    throw new ArgumentNullException();
 27
 028                return new PerfilUsuario(perfilEnum);
 29            }
 030            catch
 031            {
 032                return null;
 33            }
 34
 035        }
 36    }
 37}

Methods/Properties

.ctor()
get_PerfilUsuario()