25 lines
		
	
	
		
			859 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			859 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from typing import Union
 | 
						|
 | 
						|
from database import Marketplace
 | 
						|
from database.sipro.enums.general import BaseMarketplace
 | 
						|
from .wildberries import WildberriesMarketplaceApi
 | 
						|
from .ozon import OzonMarketplaceApi
 | 
						|
from .yandexmarket import YandexmarketMarketplaceApi
 | 
						|
 | 
						|
 | 
						|
class MarketplaceApiFactory:
 | 
						|
    @staticmethod
 | 
						|
    def get_marketplace_api(marketplace: Marketplace) -> Union[
 | 
						|
        WildberriesMarketplaceApi,
 | 
						|
        OzonMarketplaceApi,
 | 
						|
        YandexmarketMarketplaceApi
 | 
						|
    ]:
 | 
						|
        match marketplace.base_marketplace:
 | 
						|
            case BaseMarketplace.OZON:
 | 
						|
                return OzonMarketplaceApi(marketplace)
 | 
						|
            case BaseMarketplace.WILDBERRIES:
 | 
						|
                return WildberriesMarketplaceApi(marketplace)
 | 
						|
            case BaseMarketplace.YANDEX_MARKET:
 | 
						|
                return YandexmarketMarketplaceApi(marketplace)
 | 
						|
        raise ValueError()
 |