feat: implement backend API clients for multi-marketplace integration and frontend service layer
This commit is contained in:
59
backend/test_ym_api.py
Normal file
59
backend/test_ym_api.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import os
|
||||
import sys
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Add parent dir to path so we can import backend packages
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
from backend.ym_api import YandexMarketAPI
|
||||
from backend.ym_api.exceptions import YMAPIError
|
||||
|
||||
def test_ym_api():
|
||||
# Load environment variables
|
||||
env_path = os.path.join(os.path.dirname(__file__), '.env')
|
||||
load_dotenv(env_path)
|
||||
|
||||
# Check if key is loaded
|
||||
api_token = os.getenv('YM_API_TOKEN')
|
||||
campaign_id = os.getenv('YM_CAMPAIGN_ID')
|
||||
business_id = os.getenv('YM_BUSINESS_ID')
|
||||
|
||||
if not api_token:
|
||||
print("Error: YM_API_TOKEN must be in backend/.env")
|
||||
return
|
||||
|
||||
print(f"Initializing YandexMarketAPI...")
|
||||
if not campaign_id:
|
||||
print("Warning: YM_CAMPAIGN_ID not provided. Orders API might fail.")
|
||||
if not business_id:
|
||||
print("Warning: YM_BUSINESS_ID not provided. Assortment API might fail.")
|
||||
|
||||
api = YandexMarketAPI()
|
||||
|
||||
try:
|
||||
if business_id:
|
||||
# Test 1: Get Assortment (Products)
|
||||
print("\n--- Testing Assortment API (Business Offers) ---")
|
||||
assortment_response = api.assortment.get_offer_mappings(limit=5)
|
||||
print("Success! Response keys:", assortment_response.keys())
|
||||
|
||||
result = assortment_response.get("result", {})
|
||||
offers = result.get("offerMappings", [])
|
||||
print(f"Found {len(offers)} offers in business catalog.")
|
||||
|
||||
if campaign_id:
|
||||
# Test 2: Get Orders
|
||||
print("\n--- Testing Orders API (Campaign Orders) ---")
|
||||
orders_response = api.orders.get_list(params={"limit": 5})
|
||||
|
||||
# Yandex returns lists under 'orders'
|
||||
orders = orders_response.get("orders", [])
|
||||
print(f"Found {len(orders)} orders for campaign.")
|
||||
|
||||
except YMAPIError as e:
|
||||
print(f"API Error: {e}")
|
||||
except Exception as e:
|
||||
print(f"Unexpected Error: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_ym_api()
|
||||
Reference in New Issue
Block a user