using Thalos.Bff.Application.Contracts; using Thalos.Bff.Contracts.Api; using Thalos.Service.Identity.Abstractions.Contracts; namespace Thalos.Bff.Application.Adapters; /// /// Defines adapter boundary between external edge contracts and thalos-service contracts. /// public interface IIdentityEdgeContractAdapter { /// /// Maps API request into identity policy evaluation request. /// /// External API request. /// Permission code to evaluate. /// Identity policy request. EvaluateIdentityPolicyRequest ToPolicyRequest(IssueTokenApiRequest request, string permissionCode); /// /// Maps API request into identity token issuance request. /// /// External API request. /// Identity token issuance request. IssueIdentityTokenRequest ToIssueTokenRequest(IssueTokenApiRequest request); /// /// Maps identity token issuance response into edge API response. /// /// Identity token issuance response. /// External API response. IssueTokenApiResponse ToIssueTokenApiResponse(IssueIdentityTokenResponse response); /// /// Maps refresh API request into internal refresh contract. /// /// External refresh API request. /// Internal refresh request. RefreshIdentitySessionRequest ToRefreshSessionRequest(RefreshSessionApiRequest request); /// /// Maps internal refresh response into external API response. /// /// Internal refresh response. /// External API response. RefreshSessionApiResponse ToRefreshSessionApiResponse(RefreshIdentitySessionResponse response); }