< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Query.Input.ListScopeApplicationsQuery
Assembly: ArturRios.Heimdall.Query
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/ListScopeApplicationsQuery.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 39
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
100%
Covered methods: 6
Fully covered methods: 6
Total methods: 6
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ScopeId()100%11100%
get_Name()100%11100%
get_OwnerId()100%11100%
get_IncludeDeleted()100%11100%
get_ActingPersonId()100%11100%
get_ActingRole()100%11100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/ListScopeApplicationsQuery.cs

#LineLine coverage
 1using System.Text.Json.Serialization;
 2using ArturRios.Heimdall.Shared.Security;
 3using ArturRios.Mediator.Query;
 4
 5namespace ArturRios.Heimdall.Query.Input;
 6
 7/// <summary>
 8///     Request to list the applications of a scope, with pagination and optional filtering (UC-17,
 9///     FR-AP-05). <see cref="ScopeId" /> comes from the route;
 10///     <see cref="ActingPersonId" />/<see cref="ActingRole" /> are set by the controller from the
 11///     authenticated caller and are never taken from the request — a Scope Admin sees only the
 12///     applications they own, so a forged acting id would be a forged answer. All three are
 13///     <c>[JsonIgnore]</c>, which <c>ServerPopulatedBindingMetadataProvider</c> turns into
 14///     "not bindable", so they never reach the public contract.
 15/// </summary>
 16public class ListScopeApplicationsQuery : BaseQuery, IActorScoped
 17{
 18    /// <summary>Public identifier of the scope whose applications are listed (assigned from the route).</summary>
 19    [JsonIgnore]
 4320    public Guid ScopeId { get; set; }
 21
 22    /// <summary>Optional case-insensitive substring filter on the application's name.</summary>
 4223    public string? Name { get; set; }
 24
 25    /// <summary>
 26    ///     Optional filter on the owner's <c>PublicId</c>. Useful to a System Admin narrowing a busy
 27    ///     scope; inert for a Scope Admin, whose results are already restricted to their own.
 28    /// </summary>
 2429    public Guid? OwnerId { get; set; }
 30
 31    /// <summary>When <c>true</c>, logically deleted applications are included (FR-AP-09).</summary>
 1832    public bool IncludeDeleted { get; set; }
 33
 34    [JsonIgnore]
 4835    public Guid ActingPersonId { get; set; }
 36
 37    [JsonIgnore]
 5638    public int ActingRole { get; set; }
 39}