36 lines
996 B
Python
36 lines
996 B
Python
import requests
|
|
from requests.exceptions import RequestException
|
|
|
|
|
|
class Request:
|
|
"""Base request class, which uses 'requests' library
|
|
|
|
:return: Request result
|
|
:rtype: JSON or PDF file
|
|
"""
|
|
base_url = None
|
|
_access_key = None
|
|
content_type = None
|
|
inn = None
|
|
ogrn = None
|
|
|
|
def __init__(self, base_url: str, access_key: str, inn: str = None, ogrn: str = None):
|
|
self.base_url = base_url
|
|
self._access_key = access_key
|
|
self.inn = inn
|
|
self.ogrn = ogrn
|
|
|
|
def get(self, path: str):
|
|
full_url = f'{self.base_url}{path}'
|
|
payload = {'key': self._access_key, 'inn': self.inn, 'ogrn': self.ogrn}
|
|
|
|
try:
|
|
response = requests.get(url=full_url, params=payload)
|
|
|
|
if response.headers['Content-Type'] == 'application/pdf':
|
|
return response
|
|
else:
|
|
return response.json()
|
|
except RequestException as e:
|
|
return f'Error: {e}'
|