rewritten crap
This commit is contained in:
@@ -15,7 +15,7 @@ class BaseMarketplaceApi(ABC):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
async def update_stocks(self, data: Union[list, dict]) -> ClientResponse:
|
||||
async def update_stocks(self, data: Union[list, dict]) -> (ClientSession, ClientResponse):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
@@ -29,13 +29,12 @@ class BaseMarketplaceApi(ABC):
|
||||
|
||||
async def _method(self, http_method: Literal['POST', 'GET', 'PATCH', 'PUT', 'DELETE'],
|
||||
method: str,
|
||||
data: dict) -> ClientResponse:
|
||||
self.session = ClientSession()
|
||||
response = await self.session.request(
|
||||
data: dict) -> (ClientSession, ClientResponse):
|
||||
session = ClientSession()
|
||||
response = await session.request(
|
||||
http_method,
|
||||
f'{self.api_url}{method}',
|
||||
json=data,
|
||||
headers=self.get_headers()
|
||||
)
|
||||
await self.session.close()
|
||||
return response
|
||||
return session, response
|
||||
|
||||
@@ -2,7 +2,7 @@ import json
|
||||
import logging
|
||||
from typing import Union
|
||||
|
||||
from aiohttp import ClientResponse
|
||||
from aiohttp import ClientResponse, ClientSession
|
||||
|
||||
from database import Marketplace
|
||||
from marketplaces.base import BaseMarketplaceApi
|
||||
@@ -34,5 +34,5 @@ class OzonMarketplaceApi(BaseMarketplaceApi):
|
||||
def api_url(self):
|
||||
return 'https://api-seller.ozon.ru'
|
||||
|
||||
async def update_stocks(self, data: Union[list, dict]) -> ClientResponse:
|
||||
async def update_stocks(self, data: Union[list, dict]) -> (ClientSession, ClientResponse):
|
||||
return await self._method('POST', '/v2/products/stocks', data={'stocks': data})
|
||||
|
||||
@@ -3,6 +3,7 @@ import logging
|
||||
from typing import Union
|
||||
|
||||
import jwt
|
||||
from aiohttp import ClientSession, ClientResponse
|
||||
|
||||
from database import Marketplace
|
||||
from marketplaces.base import BaseMarketplaceApi
|
||||
@@ -36,7 +37,7 @@ class WildberriesMarketplaceApi(BaseMarketplaceApi):
|
||||
def api_url(self):
|
||||
return 'https://marketplace-api.wildberries.ru'
|
||||
|
||||
async def update_stocks(self, data: Union[list, dict]):
|
||||
async def update_stocks(self, data: Union[list, dict])-> (ClientSession, ClientResponse):
|
||||
warehouse_id = self.marketplace.warehouse_id
|
||||
return await self._method('PUT', f'/api/v3/stocks/{warehouse_id}', data={'stocks': data})
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ import json
|
||||
import logging
|
||||
from typing import Union
|
||||
|
||||
from aiohttp import ClientResponse, ClientSession
|
||||
|
||||
from backend.config import YANDEX_CLIENT_ID
|
||||
from database import Marketplace
|
||||
from limiter import BatchLimiter
|
||||
@@ -43,7 +45,7 @@ class YandexmarketMarketplaceApi(BaseMarketplaceApi):
|
||||
def api_url(self):
|
||||
return 'https://api.partner.market.yandex.ru/v2'
|
||||
|
||||
async def update_stocks(self, data: Union[list, dict]):
|
||||
async def update_stocks(self, data: Union[list, dict]) -> (ClientSession, ClientResponse):
|
||||
campaign_id = self.marketplace.campaign_id
|
||||
return await self._method('PUT',
|
||||
f'/campaigns/{campaign_id}/offers/stocks',
|
||||
|
||||
Reference in New Issue
Block a user