Source code for invfinsdk.client
from typing import Any, Dict, Tuple, Union
import requests
from invfinsdk.constants import API_PATH, API_VERSION
[docs]class Client:
token: str
def __init__(self, token: str) -> None:
self.token = token
def _base_build_url(self) -> str:
return f"{API_PATH}{API_VERSION}/"
def _build_request_params(
self,
path: str,
params: Dict[str, Union[str, int]],
) -> Tuple[str, Dict[str, Union[str, int]]]:
base_url = self._base_build_url()
final_path = f"{base_url}{path}/"
params.update({"api_key": self.token})
return final_path, params
def _perform_request(
self,
url: str,
params: Dict[str, Union[str, int]],
) -> requests.Response:
url, params = self._build_request_params(url, params)
response = requests.get(url=url, params=params)
response.raise_for_status()
return response
def _get_clean_response(
self,
url: str,
params: Dict[str, Union[str, int]] = {},
) -> Dict[str, Any]:
response = self._perform_request(url, params)
return response.json()