feat: ym sync

This commit is contained in:
2025-04-13 13:50:02 +03:00
parent 10683a9a42
commit c08c2c04c4
5 changed files with 344 additions and 5 deletions

View File

@@ -1,7 +1,9 @@
from pyexpat.errors import messages
from types import SimpleNamespace
from sqlalchemy import select, insert, delete, update
from sqlalchemy.orm import joinedload
from external.marketplace import YandexMarketplaceApi
from models import BaseMarketplace, Marketplace
from schemas.marketplace import *
from services.base import BaseService
@@ -92,3 +94,22 @@ class MarketplaceService(BaseService):
except Exception as e:
await self.session.rollback()
return UpdateMarketplaceResponse(ok=False, message=str(e))
async def get_yandex_market_campaigns(self,
request: GetYandexMarketCampaignsRequest) -> GetYandexMarketCampaignsResponse:
try:
marketplace = SimpleNamespace()
marketplace.auth_data = {
'Api-Key': request.api_key
}
ym_api = YandexMarketplaceApi(marketplace)
campaigns = []
async for campaign in ym_api.get_campaigns():
campaigns.append({
'id': campaign.get('id'),
'name': campaign.get('domain'),
})
return GetYandexMarketCampaignsResponse(campaigns=campaigns)
except Exception as e:
print(e)
return GetYandexMarketCampaignsResponse(campaigns=[])