< Summary - Heimdall API

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_Name()100%11100%
get_Description()100%11100%
get_DefaultLegalBasis()100%11100%
get_PrivacyNoticeUri()100%11100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Command/Input/UpdateScopeCommand.cs

#LineLine coverage
 1using System.Text.Json.Serialization;
 2using ArturRios.Mediator.Command;
 3
 4namespace ArturRios.Heimdall.Command.Input;
 5
 6/// <summary>
 7///     Intent to update an existing scope's name and description (UC-03). The scope is addressed by
 8///     its <c>PublicId</c> (GUID), bound from the route. PUT semantics: both <see cref="Name" /> and
 9///     <see cref="Description" /> are replaced; a null <see cref="Description" /> clears it.
 10///     <see cref="Id" /> is <c>[JsonIgnore]</c>, so it is not deserialized from the body and does not
 11///     appear in the request schema.
 12/// </summary>
 13public class UpdateScopeCommand : BaseCommand
 14{
 15    /// <summary>Public identifier of the scope to update (bound from the route).</summary>
 16    [JsonIgnore]
 4217    public Guid Id { get; set; }
 18
 19    /// <summary>New scope display name. Required and must be unique across all scopes.</summary>
 12120    public string Name { get; set; } = string.Empty;
 21
 22    /// <summary>New description of the scope's purpose. Null clears any existing description.</summary>
 4523    public string? Description { get; set; }
 24
 25    /// <summary>
 26    ///     The lawful basis this tenant processes its users' data on (see <c>LegalBases</c>), or
 27    ///     <c>null</c> to take the deployment default of contract performance (NFR-23).
 28    /// </summary>
 29    /// <remarks>
 30    ///     <c>Consent</c> is refused. It is withdrawable at any moment and withdrawal must be as
 31    ///     easy as giving it, which needs a path that does not exist here — accepting the value
 32    ///     would let a tenant record a basis the system could not honour.
 33    /// </remarks>
 6734    public int? DefaultLegalBasis { get; set; }
 35
 36    /// <summary>
 37    ///     Where this tenant publishes its own privacy notice, or <c>null</c> if it has none
 38    ///     distinct from Heimdall's.
 39    /// </summary>
 6640    public string? PrivacyNoticeUri { get; set; }
 41}