from typing import Tuple import requests from ..base import BaseIntegrationService class MarketplaceService(BaseIntegrationService): """ Базовый сервис для маркетплейсов. Содержит общие методы для работы с API маркетплейсов. """ def _get_headers(self) -> dict: """Получить заголовки для API запросов""" return { 'Content-Type': 'application/json', 'User-Agent': 'MyProject/1.0', } def _make_request(self, url: str, method: str = 'GET', **kwargs) -> Tuple[bool, dict, str]: """ Сделать HTTP запрос к API. Returns: tuple: (success, response_data, error_message) """ try: response = requests.request(method, url, headers=self._get_headers(), timeout=30, **kwargs) if response.status_code in [200, 201]: return True, response.json(), '' else: error_msg = f"HTTP {response.status_code}: {response.text}" return False, {}, error_msg except requests.exceptions.Timeout: return False, {}, 'Таймаут соединения' except requests.exceptions.ConnectionError: return False, {}, 'Ошибка соединения' except Exception as e: return False, {}, str(e)