diff --git a/src/delta_barth/_management.py b/src/delta_barth/_management.py index ae2bbc4..628fd3a 100644 --- a/src/delta_barth/_management.py +++ b/src/delta_barth/_management.py @@ -1,6 +1,6 @@ from typing import Final -from delta_barth.api.common import Session +from delta_barth.api._session import Session from delta_barth.constants import HTTP_BASE_CONTENT_HEADERS from delta_barth.errors import StateHandler diff --git a/src/delta_barth/api/_session.py b/src/delta_barth/api/_session.py new file mode 100644 index 0000000..27ac6b1 --- /dev/null +++ b/src/delta_barth/api/_session.py @@ -0,0 +1,48 @@ +from __future__ import annotations + +import warnings +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from delta_barth.types import HttpContentHeaders + + +class Session: + def __init__( + self, + base_headers: HttpContentHeaders, + ) -> None: + self._headers = base_headers + self._session_token: str | None = None + self._logged_in: bool = False + + @property + def headers(self) -> HttpContentHeaders: + return self._headers + + @property + def session_token(self) -> str | None: + return self._session_token + + @property + def logged_in(self) -> bool: + return self._logged_in + + def add_session_token( + self, + token: str, + ) -> None: + if self.session_token is not None: + warnings.warn( + "Setting new API session token despite it was already set. " + "Overwriting existing token." + ) + self._session_token = token + self._headers.update(DelecoToken=token) + self._logged_in = True + + def remove_session_token(self) -> None: + if "DelecoToken" in self.headers: + del self._headers["DelecoToken"] + self._session_token = None + self._logged_in = False diff --git a/src/delta_barth/api/common.py b/src/delta_barth/api/common.py index ccc3130..6f35be8 100644 --- a/src/delta_barth/api/common.py +++ b/src/delta_barth/api/common.py @@ -1,7 +1,6 @@ from __future__ import annotations import re -import warnings from datetime import datetime as Datetime from typing import TYPE_CHECKING, Final @@ -14,7 +13,7 @@ from delta_barth.errors import ( ApiConnectionError, UnspecifiedRequestType, ) -from delta_barth.types import DelBarApiError, HttpContentHeaders, HttpRequestTypes +from delta_barth.types import DelBarApiError, HttpRequestTypes if TYPE_CHECKING: from delta_barth.types import Status @@ -22,47 +21,6 @@ if TYPE_CHECKING: LOGIN_ERROR_CODES_KNOWN: Final[frozenset[int]] = frozenset((400, 401, 409, 500)) -class Session: - def __init__( - self, - base_headers: HttpContentHeaders, - ) -> None: - self._headers = base_headers - self._session_token: str | None = None - self._logged_in: bool = False - - @property - def headers(self) -> HttpContentHeaders: - return self._headers - - @property - def session_token(self) -> str | None: - return self._session_token - - @property - def logged_in(self) -> bool: - return self._logged_in - - def add_session_token( - self, - token: str, - ) -> None: - if self.session_token is not None: - warnings.warn( - "Setting new API session token despite it was already set. " - "Overwriting existing token." - ) - self._session_token = token - self._headers.update(DelecoToken=token) - self._logged_in = True - - def remove_session_token(self) -> None: - if "DelecoToken" in self.headers: - del self._headers["DelecoToken"] - self._session_token = None - self._logged_in = False - - def _assert_login_status() -> None: if not CURRENT_SESSION.logged_in: raise ApiConnectionError("Curent session is not logged in")