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