< Summary - Syki

Information
Class: Syki.Back.Features.Users.GetUserAccount.GetUserAccountService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Users/GetUserAccount/GetUserAccountService.cs
Tag: 97_27801654829
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 36
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%
Get()100%22100%

File(s)

/home/runner/work/syki/syki/Back/Features/Users/GetUserAccount/GetUserAccountService.cs

#LineLine coverage
 1using Dapper;
 2
 3namespace Syki.Back.Features.Users.GetUserAccount;
 4
 45public class GetUserAccountService(SykiDbContext ctx) : ISykiService
 6{
 7    public async Task<GetUserAccountOut> Get()
 8    {
 49        await using var connection = await ctx.GetOpenConnectionAsync();
 10
 11        const string sql = @"
 12            SELECT
 13                u.id,
 14                u.name,
 15                u.email,
 16                u.profile_photo,
 17                r.name AS role,
 18                r.base_type AS user_type,
 19                r.permissions,
 20                i.name AS institution
 21            FROM
 22                syki.users u
 23            INNER JOIN
 24                syki.user_roles ur ON ur.user_id = u.id
 25            INNER JOIN
 26                syki.roles r ON r.id = ur.role_id
 27            INNER JOIN
 28                syki.institutions i ON i.id = u.institution_id
 29            WHERE
 30                u.id = @UserId
 31            LIMIT 1
 32        ";
 33
 434        return await connection.QueryFirstAsync<GetUserAccountOut>(sql, new { UserId = ctx.RequestUser.Id });
 435    }
 36}