optimize class dependencies.

This commit is contained in:
2023-05-10 14:46:08 +09:00
parent 0281dd2ccb
commit dd0b0ba68f
12 changed files with 136 additions and 133 deletions

View File

@ -1,6 +1,6 @@
import threading
import requests
from requests import Response, Session
from mdrsclient.cache import CacheFile
from mdrsclient.exceptions import MissingConfigurationException
@ -9,24 +9,32 @@ from mdrsclient.models import Laboratories, Token, User
class MDRSConnection:
url: str
session: requests.Session
session: Session
lock: threading.Lock
__cache: CacheFile
def __init__(self, remote: str, url: str) -> None:
super().__init__()
self.url = url
self.session = requests.Session()
self.session = Session()
self.lock = threading.Lock()
self.__cache = CacheFile(remote)
self.__prepare_headers()
def build_url(self, *args) -> str:
if self.url == "":
raise MissingConfigurationException("remote host is not configured")
parts = [self.url]
parts.extend(args)
return "/".join(parts)
def get(self, url, *args, **kwargs) -> Response:
return self.session.get(self.__build_url(url), *args, **kwargs)
def post(self, url, *args, **kwargs) -> Response:
return self.session.post(self.__build_url(url), *args, **kwargs)
def put(self, url, *args, **kwargs) -> Response:
return self.session.put(self.__build_url(url), *args, **kwargs)
def delete(self, url, *args, **kwargs) -> Response:
return self.session.delete(self.__build_url(url), *args, **kwargs)
def patch(self, url, *args, **kwargs) -> Response:
return self.session.patch(self.__build_url(url), *args, **kwargs)
def logout(self) -> None:
del self.__cache.user
@ -58,6 +66,13 @@ class MDRSConnection:
def laboratories(self, laboratories: Laboratories) -> None:
self.__cache.laboratories = laboratories
def __build_url(self, *args: str) -> str:
if self.url == "":
raise MissingConfigurationException("remote host is not configured")
parts = [self.url]
parts.extend(args)
return "/".join(parts)
def __prepare_headers(self) -> None:
self.session.headers.update({"accept": "application/json"})
if self.token is not None: