Files
Hotel-Booking/Backend/venv/lib/python3.12/site-packages/paypalhttp/http_response.py
Iliyan Angelov 34b4c969d4 updates
2025-11-19 12:27:01 +02:00

67 lines
1.6 KiB
Python

def setattr_mixed(dest, key, value):
if isinstance(dest, list):
dest.append(value)
else:
setattr(dest, key, value)
def construct_object(name, data, cls=object):
if isinstance(data, dict):
iterator = iter(data)
dest = Result(data)
elif isinstance(data, list):
iterator = range(len(data))
dest = []
else:
return data
for k in iterator:
v = data[k]
k = str(k).replace("-", "_").lower()
if isinstance(v, dict):
setattr_mixed(dest, k, construct_object(k, v))
elif isinstance(v, list):
l = []
for i in range(len(v)):
setattr_mixed(l, i, construct_object(k, v[i]))
setattr_mixed(dest, k, l)
else:
setattr_mixed(dest, k, v)
return dest
class Result(object):
def __init__(self, data):
self._dict = data;
def dict(self):
return self._dict
def __contains__(self, key):
return key in self._dict
def __getitem__(self, key):
return self._dict[key]
class HttpResponse(object):
def __init__(self, data, status_code, headers=None):
if headers is None:
headers = {}
self.status_code = status_code
self.headers = headers
if data and len(data) > 0:
if isinstance(data, str):
self.result = data
elif isinstance(data, dict) or isinstance(data, list):
self.result = construct_object('Result', data) # todo: pass through response type
else:
self.result = None