< Summary - Syki

Information
Class: Syki.Back.Features.Academic.GetAcademicInsights.GetAcademicInsightsService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/GetAcademicInsights/GetAcademicInsightsService.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
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%
Get()100%22100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/GetAcademicInsights/GetAcademicInsightsService.cs

#LineLine coverage
 1using Dapper;
 2using Npgsql;
 3
 4namespace Syki.Back.Features.Academic.GetAcademicInsights;
 5
 26public class GetAcademicInsightsService(NpgsqlDataSource dataSource) : IAcademicService
 7{
 8    public async Task<AcademicInsightsOut> Get(Guid institutionId)
 9    {
 210        await using var connection = await dataSource.OpenConnectionAsync();
 11
 12        const string sql = @"
 13            SELECT
 14                (SELECT COUNT(1) FROM syki.campi WHERE institution_id = i.id)                 AS campus,
 15                (SELECT COUNT(1) FROM syki.courses WHERE institution_id = i.id)               AS courses,
 16                (SELECT COUNT(1) FROM syki.disciplines WHERE institution_id = i.id)           AS disciplines,
 17                (SELECT COUNT(1) FROM syki.course_curriculums WHERE institution_id = i.id)    AS course_curriculums,
 18                (SELECT COUNT(1) FROM syki.course_offerings WHERE institution_id = i.id)      AS course_offerings,
 19                (SELECT COUNT(1) FROM syki.classes WHERE institution_id = i.id)               AS classes,
 20                (SELECT COUNT(1) FROM syki.teachers WHERE institution_id = i.id)              AS teachers,
 21                (SELECT COUNT(1) FROM syki.students WHERE institution_id = i.id)              AS students,
 22                (SELECT COUNT(1) FROM syki.notifications WHERE institution_id = i.id)         AS notifications,
 23                (SELECT COUNT(1) FROM syki.webhook_subscriptions WHERE institution_id = i.id) AS webhooks
 24            FROM
 25              syki.institutions i
 26            WHERE
 27              i.id = @Id
 28        ";
 29
 230        var parameters = new { Id = institutionId };
 31
 232        return await connection.QueryFirstAsync<AcademicInsightsOut>(sql, parameters);
 233    }
 34}