Source code for cadrumo.adapters.outbound.aeat.auth._clave_provider_common
"""Provider-neutral mechanics shared by the two Cl@ve authentication flows."""from__future__importannotationsfromcollections.abcimportCallablefromtypingimportTYPE_CHECKING,Anyfrom.....application.auth.protocolsimportBrowserContextPort,BrowserSessionPortfrom.....core.configimportSettingsfrom.browser_lifecycleimportclose_owned_browser_context,close_owned_browser_sessionifTYPE_CHECKING:fromloggingimportLogger
[docs]defdefault_sede_target_url(settings:Settings)->str:"""Return the shared authenticated AEAT Sede target for a Cl@ve flow."""external=settings.external_constants()returnf"{external.aeat.domains.www6}{external.aeat.sede_paths.expedientes_resumen}"
[docs]defverification_probe_url(*,explicit_target_url:str|None,resolved_target_url:str|None,target_path:str,selector_url_for:Callable[[str],str],)->str:"""Choose the probe URL without changing provider-specific selector construction."""ifexplicit_target_url:returnselector_url_for(target_path)ifresolved_target_urlandtarget_pathinresolved_target_url:returnresolved_target_urlreturnresolved_target_urlorselector_url_for(target_path)
# KWARGS-ANY-RATIONALE-LOGGER-DUCK-TYPE: callers pass either a stdlib# logging.Logger or a structured logger wrapper that is duck-type# compatible but does not satisfy the Logger protocol statically.
[docs]asyncdefclose_clave_context(context:BrowserContextPort|None,*,settings:Settings,logger:Logger|Any,owner:str,)->bool:"""Close one Cl@ve-owned context using its configured bounded timeout."""returnawaitclose_owned_browser_context(context,timeout_ms=settings.cadrumo_browser_close_timeout_ms,logger=logger,owner=owner,)
# KWARGS-ANY-RATIONALE-LOGGER-DUCK-TYPE: see close_clave_context above.
[docs]asyncdefclose_clave_browser_session(session:BrowserSessionPort|None,*,settings:Settings,logger:Logger|Any,owner:str,)->bool:"""Close one Cl@ve-owned browser session using its configured bounded timeout."""returnawaitclose_owned_browser_session(session,timeout_ms=settings.cadrumo_browser_close_timeout_ms,logger=logger,owner=owner,)