27 lines
928 B
Python
27 lines
928 B
Python
from typing import Union
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from database import Marketplace
|
|
from database.sipro.enums.general import BaseMarketplace
|
|
from updaters.ozon_updater import OzonUpdater
|
|
from updaters.wildberries_updater import WildberriesUpdater
|
|
from updaters.yandexmarket_updater import YandexmarketUpdater
|
|
|
|
|
|
class UpdaterFactory:
|
|
@staticmethod
|
|
def get_updater(session: AsyncSession, marketplace: Marketplace) -> Union[
|
|
OzonUpdater,
|
|
WildberriesUpdater,
|
|
YandexmarketUpdater
|
|
]:
|
|
match marketplace.base_marketplace:
|
|
case BaseMarketplace.WILDBERRIES:
|
|
return WildberriesUpdater(marketplace, session)
|
|
case BaseMarketplace.OZON:
|
|
return OzonUpdater(marketplace, session)
|
|
case BaseMarketplace.YANDEX_MARKET:
|
|
return YandexmarketUpdater(marketplace, session)
|
|
raise ValueError()
|