parent
86698098cd
commit
db62063d5a
@ -0,0 +1,37 @@
|
|||||||
|
import aiohttp
|
||||||
|
import asyncio
|
||||||
|
import ujson
|
||||||
|
|
||||||
|
class ApiFetcher:
|
||||||
|
def __init__(self, base_url: str, session):
|
||||||
|
self.__base_url = base_url
|
||||||
|
self.__session = session
|
||||||
|
|
||||||
|
async def fetch_json(self, endpoint: str) -> (int, dict):
|
||||||
|
"""
|
||||||
|
Gets a JSON payload from the API endpoint.
|
||||||
|
|
||||||
|
url (str): the JSON payload will be gotten to the URL.
|
||||||
|
context (dict): the dictionary that will be sended as a JSON payload.
|
||||||
|
"""
|
||||||
|
url = f"{self.__base_url}{endpoint}"
|
||||||
|
|
||||||
|
async with self.__session.get(url) as response:
|
||||||
|
status = response.status
|
||||||
|
json_data = await response.json()
|
||||||
|
return (status, json_data)
|
||||||
|
|
||||||
|
async def send_json(self, endpoint: str, context: dict) -> (int, dict):
|
||||||
|
"""
|
||||||
|
Sends a JSON payload to the API endpoint.
|
||||||
|
|
||||||
|
url (str): the JSON payload will be sent to the API endpoint.
|
||||||
|
context (dict): the dictionary that will be sent as a JSON payload.
|
||||||
|
"""
|
||||||
|
url = f"{self.__base_url}{endpoint}"
|
||||||
|
|
||||||
|
async with self.__session.get(url) as session:
|
||||||
|
await session.post(url, json=context)
|
||||||
|
json_data = await session.json()
|
||||||
|
return (session.status, json_data)
|
||||||
|
|
Loading…
Reference in new issue