using BuildingBlock.Identity.Contracts.Requests;
using BuildingBlock.Identity.Contracts.Responses;
using Thalos.Service.Application.Ports;
using Thalos.Domain.Decisions;
namespace Thalos.Service.Application.UseCases;
///
/// Default orchestration implementation for identity token issuance.
///
public sealed class IssueIdentityTokenUseCase(
IIdentityTokenReadPort readPort,
IIdentityTokenDecisionService decisionService)
: IIssueIdentityTokenUseCase
{
///
public async Task HandleAsync(IssueIdentityTokenRequest request)
{
var tokenData = await readPort.ReadTokenAsync(request);
return decisionService.BuildIssuedTokenResponse(tokenData);
}
}