< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CrossLogin.CrossLoginController
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CrossLogin/CrossLoginController.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 34
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

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

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CrossLogin/CrossLoginController.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.CrossLogin;
 2
 3[ApiController, AuthAcademic]
 4[EnableRateLimiting("Medium")]
 85public class CrossLoginController(CrossLoginService service, AuthSettings settings) : ControllerBase
 6{
 7    /// <summary>
 8    /// Login interno
 9    /// </summary>
 10    /// <remarks>
 11    /// Realiza o login a partir do Acadêmico, indo para conta de um Aluno ou Professor da instituição. <br/>
 12    /// Essa operação pode ser ativada/desativada globalmente pelo usuário Adm através da feature flag CrossLogin.
 13    /// </remarks>
 14    [Authorize(BackPolicies.CrossLogin)]
 15    [HttpPost("academic/cross-login")]
 16    [SwaggerResponseExample(200, typeof(ResponseExamples))]
 17    [SwaggerResponseExample(400, typeof(ErrorsExamples))]
 18    public async Task<IActionResult> Login([FromBody] CrossLoginIn data)
 19    {
 820        var result = await service.Login(User.InstitutionId, data);
 21
 822        if (result.IsSuccess)
 23        {
 424            Response.AppendSykiJwtCookie(result.Success.AccessToken, settings);
 425            result.Success.AccessToken = "";
 26        }
 27
 828        return result.Match<IActionResult>(Ok, BadRequest);
 829    }
 30}
 31
 32internal class RequestExamples : ExamplesProvider<CrossLoginIn>;
 33internal class ResponseExamples : ExamplesProvider<CrossLoginOut>;
 34internal class ErrorsExamples : ErrorExamplesProvider<UserNotFound>;