Add ApiFetcher to make requests to the server.

This commit is contained in:
2023-06-16 17:15:46 +03:00
parent 86698098cd
commit db62063d5a
3 changed files with 37 additions and 0 deletions
View File
View File
+37
View File
@@ -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)