bunkerweb/bw/api/API.py
2022-10-19 17:37:13 +02:00

52 lines
1.6 KiB
Python

from requests import request
class API:
def __init__(self, endpoint, host="bwapi"):
self.__endpoint = endpoint
self.__host = host
def get_endpoint(self):
return self.__endpoint
def get_host(self):
return self.__host
def request(self, method, url, data=None, files=None, timeout=(10, 30)):
try:
headers = {}
headers["User-Agent"] = "bwapi"
headers["Host"] = self.__host
if type(data) is dict:
resp = request(
method,
f"{self.__endpoint}{url}",
json=data,
timeout=timeout,
headers=headers,
)
elif type(data) is bytes:
resp = request(
method,
f"{self.__endpoint}{url}",
data=data,
timeout=timeout,
headers=headers,
)
elif files is not None:
resp = request(
method,
f"{self.__endpoint}{url}",
files=files,
timeout=timeout,
headers=headers,
)
elif data is None:
resp = request(
method, f"{self.__endpoint}{url}", timeout=timeout, headers=headers
)
else:
return False, "unsupported data type", None, None
except Exception as e:
return False, str(e), None, None
return True, "ok", resp.status_code, resp.json()