29 lines
676 B
Python
29 lines
676 B
Python
from abc import ABC, abstractmethod
|
|
|
|
import aiohttp
|
|
|
|
from models import Marketplace
|
|
|
|
|
|
class BaseMarketplaceApi(ABC):
|
|
marketplace: Marketplace
|
|
|
|
@abstractmethod
|
|
def __init__(self, marketplace: Marketplace):
|
|
pass
|
|
|
|
async def _method(self, http_method, method, **kwargs):
|
|
async with aiohttp.ClientSession(headers=self.get_headers) as session:
|
|
async with session.request(http_method, self.base_url + method, **kwargs) as response:
|
|
return await response.json()
|
|
|
|
@property
|
|
@abstractmethod
|
|
def get_headers(self) -> dict:
|
|
pass
|
|
|
|
@property
|
|
@abstractmethod
|
|
def base_url(self) -> str:
|
|
pass
|