Table of Contents

Class HouseholdController

Namespace
SEBT.Portal.Api.Controllers.Household
Assembly
SEBT.Portal.Api.dll

Controller for household data retrieval and management. Household lookup uses state-configurable preferred household ID type (e.g. email, SNAP ID) resolved from the authenticated user.

[ApiController]
[Route("api/household")]
public class HouseholdController : ControllerBase
Inheritance
object
ControllerBase
HouseholdController

Methods

GetHouseholdData(IQueryHandler<GetHouseholdDataQuery, HouseholdData>, IIdentifierHasher, IFeatureManager, bool, CancellationToken)

Retrieves household data for the authenticated user. The household identifier used for lookup is determined by state configuration (e.g. email, SNAP ID). PII data is only included when the user meets the ID proofing requirements configured for the state.

[HttpGet("data")]
[Authorize]
[ProducesResponseType(typeof(HouseholdDataResponse), 200)]
[ProducesResponseType(typeof(ErrorResponse), 401)]
[ProducesResponseType(typeof(ProblemDetails), 403)]
public Task<IActionResult> GetHouseholdData(IQueryHandler<GetHouseholdDataQuery, HouseholdData> queryHandler, IIdentifierHasher identifierHasher, IFeatureManager featureManager, bool includeCardDetails = true, CancellationToken cancellationToken = default)

Parameters

queryHandler IQueryHandler<GetHouseholdDataQuery, HouseholdData>

The use case handler for retrieving household data.

identifierHasher IIdentifierHasher

Hashes household application and case IDs before returning them to the client.

featureManager IFeatureManager

Decides whether the response carries hashed analytics identifiers.

includeCardDetails bool

When false, card-related fields are excluded from the response.

cancellationToken CancellationToken

A token to monitor for cancellation requests.

Returns

Task<IActionResult>

An OK result with household data if found, or an empty payload when no household exists; otherwise, Unauthorized or Forbidden.

RequestCardReplacement(RequestCardReplacementRequest, ICommandHandler<RequestCardReplacementCommand>, CancellationToken)

Requests replacement cards for the authenticated user's household.

[HttpPost("cards/replace")]
[Authorize]
[ProducesResponseType(204)]
[ProducesResponseType(typeof(ValidationProblemDetails), 400)]
[ProducesResponseType(typeof(ProblemDetails), 403)]
[ProducesResponseType(typeof(ProblemDetails), 404)]
public Task<IActionResult> RequestCardReplacement(RequestCardReplacementRequest request, ICommandHandler<RequestCardReplacementCommand> commandHandler, CancellationToken cancellationToken = default)

Parameters

request RequestCardReplacementRequest

The case IDs to request replacements for.

commandHandler ICommandHandler<RequestCardReplacementCommand>

The use case handler for requesting card replacements.

cancellationToken CancellationToken

A token to monitor for cancellation requests.

Returns

Task<IActionResult>

No content on success; otherwise, BadRequest, Forbidden, or NotFound.

UpdateAddress(UpdateAddressRequest, ICommandHandler<UpdateAddressCommand, AddressValidationResult>, CancellationToken)

Updates the mailing address for the authenticated user's household. Returns the address validation result, which may include a suggested alternative (e.g., abbreviated street name for DC) or a validation error (blocked address, too long).

[HttpPut("address")]
[Authorize]
[ProducesResponseType(typeof(AddressUpdateResponse), 200)]
[ProducesResponseType(typeof(ValidationProblemDetails), 400)]
[ProducesResponseType(typeof(ProblemDetails), 403)]
[ProducesResponseType(typeof(AddressUpdateResponse), 422)]
[ProducesResponseType(typeof(ProblemDetails), 502)]
public Task<IActionResult> UpdateAddress(UpdateAddressRequest request, ICommandHandler<UpdateAddressCommand, AddressValidationResult> commandHandler, CancellationToken cancellationToken = default)

Parameters

request UpdateAddressRequest

The new mailing address.

commandHandler ICommandHandler<UpdateAddressCommand, AddressValidationResult>

The use case handler for updating the address.

cancellationToken CancellationToken

A token to monitor for cancellation requests.

Returns

Task<IActionResult>

The address validation result on success; otherwise, BadRequest, Forbidden, or UnprocessableEntity.