feat: a lot of a lot
This commit is contained in:
28
marketplaces/factory.py
Normal file
28
marketplaces/factory.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from audioop import ratecv
|
||||
from typing import Union
|
||||
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from enums.base_marketplace import BaseMarketplace
|
||||
from marketplaces.ozon.core import OzonController
|
||||
from marketplaces.wildberries.core import WildberriesController
|
||||
from marketplaces.yandex.core import YandexController
|
||||
from models import Marketplace
|
||||
|
||||
|
||||
class MarketplaceControllerFactory:
|
||||
@staticmethod
|
||||
def get_controller(session: AsyncSession, marketplace: Marketplace) -> Union[
|
||||
WildberriesController,
|
||||
OzonController,
|
||||
YandexController
|
||||
]:
|
||||
match marketplace.base_marketplace_key:
|
||||
case BaseMarketplace.WILDBERRIES:
|
||||
return WildberriesController(session, marketplace)
|
||||
case BaseMarketplace.OZON:
|
||||
return OzonController(session, marketplace)
|
||||
case BaseMarketplace.YANDEX_MARKET:
|
||||
return YandexController(session, marketplace)
|
||||
case _:
|
||||
raise ValueError(f"Unsupported marketplace: {marketplace.base_marketplace_key}")
|
||||
Reference in New Issue
Block a user