= ResponseGetData(status=200, response="test", is_success=True)
rgd rgd
ResponseGetData(status=200, response='test', is_success=True, parent_class=None)
BlockedByVPN (res, ip_address:str=None)
base exception
ResponseGetData (status:int, response:Any, is_success:bool, auth:dict=None, parent_class:str=None, traceback_details:<built-infunctionany>=None)
preferred response class for all API Requests
This code base supports two API request libraries, requests.request
(synchronous) and aiohttp.ClientRequest
(asynchronous) this can be extended as new libraries emerge with different performance characteristics.
ResponseGetData._from_requests_response (res:requests.models.Response)
returns ResponseGetData
Type | Details | |
---|---|---|
res | Response | requests response object |
Returns | ResponseGetData |
# test _from_requests_response returns ResponseGetData class
url = f"https://domo-community.domo.com/api/content/v2/authentication"
tokenHeaders = {"Content-Type": "application/json"}
body = {
"method": "password",
"emailAddress": "jae@onyxreporting.com",
"password": os.environ["DOMO_PASSWORD"],
}
res = requests.request(method="POST", url=url, json=body, headers=tokenHeaders)
print(res.status_code)
test_res = ResponseGetData._from_requests_response(res)
test_res.__dict__.keys()
200
dict_keys(['status', 'response', 'is_success', 'auth', 'parent_class', 'traceback_details'])
find_ip (html, html_tag:str='p')
ResponseGetData._from_aiohttp_response (res:aiohttp.client_reqrep.Client Response, auth:Optional[<built- infunctionany>]=None, process_stream:bool=False, stream_chunks:int=10, debug_api:bool=False, response_file_name:str=None, trac eback_details:domolibrary.client. Logger.TracebackDetails=None)
async method returns ResponseGetData
Type | Default | Details | |
---|---|---|---|
res | ClientResponse | requests response object | |
auth | Optional | None | |
process_stream | bool | False | |
stream_chunks | int | 10 | |
debug_api | bool | False | |
response_file_name | str | None | |
traceback_details | TracebackDetails | None | |
Returns | ResponseGetData |
# test _from_aiohttp_response returns ResponseGetData class
class Foo:
def __init__(self):
pass
async def get_data(self):
url = f"https://domo-community.domo.com/api/content/v2/authentication"
body = {
"method": "password",
"emailAddress": "jae@onyxreporting.com",
"password": os.environ["DOMO_PASSWORD"],
}
session = aiohttp.ClientSession()
res = await session.post(url=url, json=body)
await session.close()
print(res.status)
traceback_details = dl.get_traceback(
root_module="<module>",
# drop entries from the top of stack to exclude the functions that retrieve the traceback
num_stacks_to_drop=0,
parent_class=self.__class__.__name__,
)
return await ResponseGetData._from_aiohttp_response(
res, traceback_details=traceback_details
)
test_foo = Foo()
res = await test_foo.get_data()
res.traceback_details.__dict__
200
{'function_trail': '<module> -> get_data',
'function_name': 'get_data',
'file_name': '/tmp/ipykernel_59532/1664391316.py',
'parent_class': 'Foo',
'traceback_stack': [<FrameSummary file /tmp/ipykernel_59532/1664391316.py, line 37 in <module>>,
<FrameSummary file /tmp/ipykernel_59532/1664391316.py, line 23 in get_data>]}