< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Query.Registration.QueryServiceCollectionExtensions
Assembly: ArturRios.Heimdall.Query
File(s): /home/ci/agent/workspace/heimdall-api-docs_main/app/src/Application/ArturRios.Heimdall.Query/Registration/QueryServiceCollectionExtensions.cs
Line coverage
100%
Covered lines: 81
Uncovered lines: 0
Coverable lines: 81
Total lines: 108
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddQueryHandlers(...)100%11100%

File(s)

/home/ci/agent/workspace/heimdall-api-docs_main/app/src/Application/ArturRios.Heimdall.Query/Registration/QueryServiceCollectionExtensions.cs

#LineLine coverage
 1using ArturRios.Heimdall.Query.Handlers;
 2using ArturRios.Heimdall.Query.Input;
 3using ArturRios.Heimdall.Query.Input.Validation;
 4using ArturRios.Heimdall.Query.Output;
 5using ArturRios.Mediator.Query;
 6using ArturRios.Mediator.Query.Interfaces;
 7using FluentValidation;
 8using Microsoft.Extensions.DependencyInjection;
 9
 10namespace ArturRios.Heimdall.Query.Registration;
 11
 12public static class QueryServiceCollectionExtensions
 13{
 14    /// <summary>
 15    ///     Registers the query mediator, the query handlers and the validators of the paginated list queries.
 16    /// </summary>
 17    public static IServiceCollection AddQueryHandlers(this IServiceCollection services)
 18    {
 19        // #219: the controllers pass HttpContext.RequestAborted to every query, and the mediator forwards it
 20        // to the handler, so an abandoned read stops its query. Commands are the opposite (see CommandMediator).
 97321        services.AddScoped<QueryMediator>();
 97322        services
 97323            .AddScoped<IQueryHandlerAsync<GetScopeByIdQuery, ScopeOutput>, GetScopeByIdQueryHandler>();
 97324        services
 97325            .AddScoped<IPaginatedQueryHandlerAsync<ListScopesQuery, ScopeOutput>, ListScopesQueryHandler>();
 97326        services
 97327            .AddScoped<IQueryHandlerAsync<GetPersonByIdQuery, PersonOutput>, GetPersonByIdQueryHandler>();
 97328        services
 97329            .AddScoped<IPaginatedQueryHandlerAsync<ListScopePersonsQuery, PersonOutput>, ListScopePersonsQueryHandler>()
 97330        services
 97331            .AddScoped<IPaginatedQueryHandlerAsync<ListScopeOwnersQuery, PersonOutput>, ListScopeOwnersQueryHandler>();
 97332        services
 97333            .AddScoped<IPaginatedQueryHandlerAsync<ListScopeOwnerInvitationsQuery, ScopeOwnerInvitationOutput>,
 97334                ListScopeOwnerInvitationsQueryHandler>();
 97335        services
 97336            .AddScoped<IPaginatedQueryHandlerAsync<ListMyScopeInvitationsQuery, MyScopeInvitationOutput>,
 97337                ListMyScopeInvitationsQueryHandler>();
 97338        services
 97339            .AddScoped<IPaginatedQueryHandlerAsync<ListScopeAdminsQuery, PersonSummaryOutput>,
 97340                ListScopeAdminsQueryHandler>();
 97341        services
 97342            .AddScoped<IPaginatedQueryHandlerAsync<ListPendingRegistrationsQuery, PendingRegistrationOutput>,
 97343                ListPendingRegistrationsQueryHandler>();
 97344        services
 97345            .AddScoped<IPaginatedQueryHandlerAsync<ListSystemAdminsQuery, PersonSummaryOutput>,
 97346                ListSystemAdminsQueryHandler>();
 97347        services
 97348            .AddScoped<IQueryHandlerAsync<GetApplicationByIdQuery, ApplicationOutput>,
 97349                GetApplicationByIdQueryHandler>();
 97350        services
 97351            .AddScoped<IQueryHandlerAsync<CheckApplicationTokenQuery, ApplicationTokenCheckOutput>,
 97352                CheckApplicationTokenQueryHandler>();
 97353        services
 97354            .AddScoped<IPaginatedQueryHandlerAsync<ListScopeApplicationsQuery, ApplicationOutput>,
 97355                ListScopeApplicationsQueryHandler>();
 97356        services
 97357            .AddScoped<IQueryHandlerAsync<ListApplicationCredentialsQuery, ApplicationCredentialListOutput>,
 97358                ListApplicationCredentialsQueryHandler>();
 97359        services
 97360            .AddScoped<IQueryHandlerAsync<GetScopePermissionByIdQuery, ScopePermissionOutput>,
 97361                GetScopePermissionByIdQueryHandler>();
 97362        services
 97363            .AddScoped<IPaginatedQueryHandlerAsync<ListScopePermissionsQuery, ScopePermissionOutput>,
 97364                ListScopePermissionsQueryHandler>();
 97365        services
 97366            .AddScoped<IQueryHandlerAsync<GetGoogleUserByIdQuery, GoogleUserOutput>,
 97367                GetGoogleUserByIdQueryHandler>();
 97368        services
 97369            .AddScoped<IPaginatedQueryHandlerAsync<ListScopeGoogleUsersQuery, GoogleUserOutput>,
 97370                ListScopeGoogleUsersQueryHandler>();
 97371        services
 97372            .AddScoped<IPaginatedQueryHandlerAsync<ListErasureRequestsQuery, ErasureRequestOutput>,
 97373                ListErasureRequestsQueryHandler>();
 97374        services
 97375            .AddScoped<IQueryHandlerAsync<DetectSecuritySignalsQuery, SecuritySignalsOutput>,
 97376                DetectSecuritySignalsQueryHandler>();
 97377        services
 97378            .AddScoped<IValidator<ListErasureRequestsQuery>, ListErasureRequestsQueryValidator>();
 79
 80        // UC-48 (FR-AT-01/02): the audit trail, System Admins only.
 97381        services
 97382            .AddScoped<IPaginatedQueryHandlerAsync<ListAuditLogQuery, AuditLogEntryOutput>,
 97383                ListAuditLogQueryHandler>();
 97384        services.AddScoped<IValidator<ListAuditLogQuery>, ListAuditLogQueryValidator>();
 97385        services
 97386            .AddScoped<IQueryHandlerAsync<GetTwoFactorStatusQuery, TwoFactorStatusOutput>,
 97387                GetTwoFactorStatusQueryHandler>();
 88
 89        // NFR-10: pagination/filter validation for every paginated list query.
 97390        services.AddScoped<IValidator<ListScopesQuery>, ListScopesQueryValidator>();
 97391        services.AddScoped<IValidator<ListScopePersonsQuery>, ListScopePersonsQueryValidator>();
 97392        services.AddScoped<IValidator<ListScopeOwnersQuery>, ListScopeOwnersQueryValidator>();
 97393        services.AddScoped<IValidator<ListScopeOwnerInvitationsQuery>, ListScopeOwnerInvitationsQueryValidator>();
 97394        services.AddScoped<IValidator<ListMyScopeInvitationsQuery>, ListMyScopeInvitationsQueryValidator>();
 97395        services.AddScoped<IValidator<ListScopeAdminsQuery>, ListScopeAdminsQueryValidator>();
 97396        services
 97397            .AddScoped<IValidator<ListPendingRegistrationsQuery>, ListPendingRegistrationsQueryValidator>();
 97398        services.AddScoped<IValidator<ListSystemAdminsQuery>, ListSystemAdminsQueryValidator>();
 97399        services
 973100            .AddScoped<IValidator<ListScopeApplicationsQuery>, ListScopeApplicationsQueryValidator>();
 973101        services
 973102            .AddScoped<IValidator<ListScopePermissionsQuery>, ListScopePermissionsQueryValidator>();
 973103        services
 973104            .AddScoped<IValidator<ListScopeGoogleUsersQuery>, ListScopeGoogleUsersQueryValidator>();
 105
 973106        return services;
 107    }
 108}