import json import logging from typing import Union from aiohttp import ClientResponse, ClientSession from database import Marketplace from marketplaces.base import BaseMarketplaceApi class OzonMarketplaceApi(BaseMarketplaceApi): def __init__(self, marketplace: Marketplace): self.marketplace = marketplace self.is_valid = True try: auth_data = json.loads(marketplace.auth_data) except Exception: logging.error(f"Couldn't load auth data for marketplace [{self.marketplace.id}]") self.is_valid = False return client_id = auth_data.get('clientId') self.limiter_key = str(marketplace.company_id) + str(client_id) self.headers = { 'Client-Id': client_id, 'Api-Key': auth_data.get('clientToken') } def get_headers(self): return self.headers @property def api_url(self): return 'https://api-seller.ozon.ru' async def update_stocks(self, data: Union[list, dict]) -> (ClientSession, ClientResponse): return await self._method('POST', '/v2/products/stocks', data={'stocks': data})