62 lines
1.7 KiB
Python

"""module to wrap the session management in function calls to easily interact
with the current session from C#"""
from __future__ import annotations
from typing import Final
from delta_barth.constants import HTTP_BASE_CONTENT_HEADERS
from delta_barth.logging import logger_session as logger
from delta_barth.session import Session
SESSION: Final[Session] = Session(HTTP_BASE_CONTENT_HEADERS)
def setup(
data_path: str,
base_url: str,
) -> None: # pragma: no cover
# at this point: no logging configured
SESSION.set_data_path(data_path)
SESSION.set_base_url(base_url=base_url)
SESSION.setup()
logger.info("[EXT-CALL MANAGEMENT] Successfully set up current session")
def set_credentials(
username: str,
password: str,
database: str,
mandant: str,
) -> None: # pragma: no cover
logger.info("[EXT-CALL MANAGEMENT] Setting credentials for current session...")
SESSION.set_credentials(
username=username,
password=password,
database=database,
mandant=mandant,
)
logger.info("[EXT-CALL MANAGEMENT] Successfully set credentials for current session")
# ** not part of external API, only internal
def get_credentials() -> str: # pragma: no cover
logger.info("[EXT-CALL MANAGEMENT] Getting credentials for current session...")
creds = SESSION.creds
logger.info("[EXT-CALL MANAGEMENT] Successfully got credentials for current session")
return creds.model_dump_json()
def set_base_url(
base_url: str,
) -> None: # pragma: no cover
SESSION.set_base_url(base_url=base_url)
def get_data_path() -> str: # pragma: no cover
return str(SESSION.data_path)
def get_base_url() -> str: # pragma: no cover
return SESSION.base_url