Update db_calls.py
Added timeout parameter to generic db_get
This commit is contained in:
parent
4b0afed6f8
commit
e8e3727aae
34
db_calls.py
34
db_calls.py
@ -8,6 +8,7 @@ import csv
|
||||
|
||||
AUTH_TOKEN = {'Authorization': f'Bearer {os.environ.get("API_TOKEN")}'}
|
||||
DB_URL = 'http://database/api'
|
||||
master_debug = True
|
||||
|
||||
|
||||
def param_char(other_params):
|
||||
@ -29,14 +30,35 @@ def get_req_url(endpoint: str, api_ver: int = 1, object_id: str = None, params:
|
||||
return req_url
|
||||
|
||||
|
||||
def db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, as_csv: bool = False):
|
||||
def db_get(endpoint: str, api_ver: int = 1, object_id: int = None, params: list = None, none_okay: bool = True,
|
||||
timeout: int = 3):
|
||||
req_url = get_req_url(endpoint, api_ver=api_ver, object_id=object_id, params=params)
|
||||
log_string = f'get:\n{endpoint} id: {object_id} params: {params}'
|
||||
logging.info(log_string) if master_debug else logging.debug(log_string)
|
||||
|
||||
try:
|
||||
resp = requests.get(req_url, timeout=timeout)
|
||||
except requests.ReadTimeout as e:
|
||||
logging.error(f'Read Timeout: {e}')
|
||||
raise ConnectionError(f'DB: The internet was a bit too slow for me to grab the data I needed. Please '
|
||||
f'hang on a few extra seconds and try again.')
|
||||
|
||||
resp = requests.get(req_url)
|
||||
if resp.status_code == 200:
|
||||
if as_csv:
|
||||
return csv.reader(map(bytes.decode, resp.content))
|
||||
return resp.json()
|
||||
data = resp.json()
|
||||
log_string = f'{data}'
|
||||
if master_debug:
|
||||
logging.info(f'return: {log_string[:1200]}{" [ S N I P P E D ]" if len(log_string) > 1200 else ""}')
|
||||
else:
|
||||
logging.debug(f'return: {log_string[:1200]}{" [ S N I P P E D ]" if len(log_string) > 1200 else ""}')
|
||||
return data
|
||||
elif none_okay:
|
||||
data = resp.json()
|
||||
log_string = f'{data}'
|
||||
if master_debug:
|
||||
logging.info(f'return: {log_string[:1200]}{" [ S N I P P E D ]" if len(log_string) > 1200 else ""}')
|
||||
else:
|
||||
logging.debug(f'return: {log_string[:1200]}{" [ S N I P P E D ]" if len(log_string) > 1200 else ""}')
|
||||
return None
|
||||
else:
|
||||
logging.warning(resp.text)
|
||||
raise ValueError(f'DB: {resp.text}')
|
||||
@ -280,7 +302,7 @@ async def get_players(season, team_abbrev=None, sort=None, injured=None):
|
||||
if injured:
|
||||
req_url += f'&injured={injured}'
|
||||
|
||||
resp = requests.get(req_url, timeout=3)
|
||||
resp = requests.get(req_url, timeout=6)
|
||||
if resp.status_code == 200:
|
||||
return resp.json()
|
||||
else:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user