refactoring
This commit is contained in:
parent
3a62573ae1
commit
a94fd4a936
@ -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
|
||||
|
||||
|
||||
48
src/delta_barth/api/_session.py
Normal file
48
src/delta_barth/api/_session.py
Normal file
@ -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
|
||||
@ -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")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user