feat(router): add core changes for external authentication flow through unified_authentication_service (#7063)

Co-authored-by: Sahkal Poddar <sahkal.poddar@juspay.in>
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
Co-authored-by: Sahkal Poddar <sahkalplanet@gmail.com>
This commit is contained in:
Sai Harsha Vardhan
2025-02-04 01:10:24 +05:30
committed by GitHub
parent 64a7afa6d4
commit ae39374c6b
20 changed files with 1195 additions and 266 deletions

View File

@ -34,13 +34,13 @@ use hyperswitch_domain_models::{
UasFlowData,
},
router_flow_types::{
mandate_revoke::MandateRevoke, AccessTokenAuth, PostAuthenticate, PreAuthenticate,
VerifyWebhookSource,
mandate_revoke::MandateRevoke, AccessTokenAuth, Authenticate, PostAuthenticate,
PreAuthenticate, VerifyWebhookSource,
},
router_request_types::{
unified_authentication_service::{
UasAuthenticationResponseData, UasPostAuthenticationRequestData,
UasPreAuthenticationRequestData,
UasAuthenticationRequestData, UasAuthenticationResponseData,
UasPostAuthenticationRequestData, UasPreAuthenticationRequestData,
},
AccessTokenRequestData, MandateRevokeRequestData, VerifyWebhookSourceRequestData,
},
@ -371,7 +371,7 @@ pub trait ConnectorVerifyWebhookSourceV2:
/// trait UnifiedAuthenticationService
pub trait UnifiedAuthenticationService:
ConnectorCommon + UasPreAuthentication + UasPostAuthentication
ConnectorCommon + UasPreAuthentication + UasPostAuthentication + UasAuthentication
{
}
@ -395,9 +395,15 @@ pub trait UasPostAuthentication:
{
}
/// trait UasAuthentication
pub trait UasAuthentication:
ConnectorIntegration<Authenticate, UasAuthenticationRequestData, UasAuthenticationResponseData>
{
}
/// trait UnifiedAuthenticationServiceV2
pub trait UnifiedAuthenticationServiceV2:
ConnectorCommon + UasPreAuthenticationV2 + UasPostAuthenticationV2
ConnectorCommon + UasPreAuthenticationV2 + UasPostAuthenticationV2 + UasAuthenticationV2
{
}
@ -423,6 +429,17 @@ pub trait UasPostAuthenticationV2:
{
}
/// trait UasAuthenticationV2
pub trait UasAuthenticationV2:
ConnectorIntegrationV2<
Authenticate,
UasFlowData,
UasAuthenticationRequestData,
UasAuthenticationResponseData,
>
{
}
/// trait ConnectorValidation
pub trait ConnectorValidation: ConnectorCommon + ConnectorSpecifications {
/// Validate, the payment request against the connector supported features

View File

@ -14,13 +14,13 @@ use hyperswitch_domain_models::{
Session, SetupMandate, Void,
},
refunds::{Execute, RSync},
unified_authentication_service::{PostAuthenticate, PreAuthenticate},
unified_authentication_service::{Authenticate, PostAuthenticate, PreAuthenticate},
webhooks::VerifyWebhookSource,
},
router_request_types::{
unified_authentication_service::{
UasAuthenticationResponseData, UasPostAuthenticationRequestData,
UasPreAuthenticationRequestData,
UasAuthenticationRequestData, UasAuthenticationResponseData,
UasPostAuthenticationRequestData, UasPreAuthenticationRequestData,
},
AcceptDisputeRequestData, AccessTokenRequestData, AuthorizeSessionTokenData,
CompleteAuthorizeData, ConnectorCustomerData, DefendDisputeRequestData,
@ -205,3 +205,10 @@ pub type UasPostAuthenticationType = dyn ConnectorIntegration<
UasPostAuthenticationRequestData,
UasAuthenticationResponseData,
>;
/// Type alias for `ConnectorIntegration<Authenticate, UasAuthenticationRequestData, UasAuthenticationResponseData>`
pub type UasAuthenticationType = dyn ConnectorIntegration<
Authenticate,
UasAuthenticationRequestData,
UasAuthenticationResponseData,
>;