From 8b1a5ac17502113f8c379c44bf77b5ef809970c4 Mon Sep 17 00:00:00 2001 From: rmanach Date: Tue, 20 May 2025 15:04:30 +0200 Subject: [PATCH] init client with credentials --- src/client.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/client.py b/src/client.py index c64e085..b9a716f 100644 --- a/src/client.py +++ b/src/client.py @@ -177,6 +177,24 @@ class Client: return None + @staticmethod + def _init_client( + base_url: str, email: str, password: str, verify: bool = True + ) -> "Client": + cli = Client(base_url, email, password) + cli.session = Session() + cli.session.headers.update({"content-type": "application/json"}) + + if not verify: + urllib3.disable_warnings() + + cli.session.verify = verify + + cli._login() + + logging.info(f"client successfully initialized for user: {cli.email}") + return cli + @classmethod def from_env(cls) -> "Client": """ @@ -193,24 +211,17 @@ class Client: dotenv_data = dotenv_values() env_data.update(dotenv_data) # type: ignore - cli = Client( + return Client._init_client( env_data.get("WHEREIS_API_BASE_URL", ""), env_data.get("WHEREIS_API_EMAIL", ""), env_data.get("WHEREIS_API_PASSWORD", ""), ) - cli.session = Session() - cli.session.headers.update({"content-type": "application/json"}) - is_cert_verify = env_data.get("WHEREIS_CERT_VERIFY", "") != "false" - if not is_cert_verify: - urllib3.disable_warnings() - - cli.session.verify = is_cert_verify - - cli._login() - - logging.info(f"client successfully initialized for user: {cli.email}") - return cli + @classmethod + def from_creds( + cls, base_url: str, email: str, password: str, verify: bool = False + ) -> "Client": + return Client._init_client(base_url, email, password, verify) @refresh() def _get_sessions_page(self, url: str) -> dict[str, Any] | WhereIsException: