shelter plugin done

This commit is contained in:
2024-12-28 18:48:01 +09:00
parent 9ae7380166
commit d9b8971be3
6 changed files with 30 additions and 15 deletions

View File

@@ -53,14 +53,25 @@ class PMSIntegrationManager:
Загружает плагин, соответствующий PMS конфигурации отеля. Загружает плагин, соответствующий PMS конфигурации отеля.
""" """
pms_name = self.hotel.pms.plugin_name.lower() # Приводим название плагина к нижнему регистру pms_name = self.hotel.pms.plugin_name.lower() # Приводим название плагина к нижнему регистру
if pms_name == "ecvi_intermark" or pms_name == "ecvi":
from pms_integration.plugins.ecvi_pms import EcviPMSPlugin # Формируем имя модуля и класса плагина
self.plugin = EcviPMSPlugin(self.hotel) plugin_module_name = f"pms_integration.plugins.{pms_name}_pms"
elif pms_name == "shelter" or pms_name == "shelter": plugin_class_name = f"{pms_name.capitalize()}PMSPlugin"
from pms_integration.plugins.shelter_pms import ShelterPMSPlugin
self.plugin = ShelterPMSPlugin(self.hotel) try:
else: # Динамически импортируем модуль плагина
raise ValueError(f"Неизвестный PMS: {pms_name}") plugin_module = importlib.import_module(plugin_module_name)
# Динамически получаем класс плагина
plugin_class = getattr(plugin_module, plugin_class_name, None)
if not plugin_class or not issubclass(plugin_class, BasePMSPlugin):
raise ImportError(f"Класс {plugin_class_name} не найден или не является наследником BasePMSPlugin.")
# Инициализируем плагин
self.plugin = plugin_class(self.hotel)
except ImportError as e:
raise ValueError(f"Ошибка загрузки плагина для PMS {pms_name}: {e}")
def fetch_data(self): def fetch_data(self):
""" """
Получает данные из PMS с использованием загруженного плагина. Получает данные из PMS с использованием загруженного плагина.

View File

@@ -176,13 +176,13 @@ class BnovoPMSPlugin(BasePMSPlugin):
"""Получение данных о бронированиях с помощью эндпоинта /dashboard.""" """Получение данных о бронированиях с помощью эндпоинта /dashboard."""
logger.info("Начало процесса получения данных о бронированиях.") logger.info("Начало процесса получения данных о бронированиях.")
# # Вызов функции получения данных аккаунта # Вызов функции получения данных аккаунта
# try: try:
# account_data = await self._fetch_and_log_account_data() account_data = await self._fetch_and_log_account_data()
# logger.info(f"Данные аккаунта успешно получены:") logger.info(f"Данные аккаунта успешно получены:")
# except Exception as e: except Exception as e:
# logger.error(f"Ошибка получения данных аккаунта: {e}") logger.error(f"Ошибка получения данных аккаунта: {e}")
# raise raise
url = f"{self.api_url}/dashboard" url = f"{self.api_url}/dashboard"
now = datetime.now() now = datetime.now()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long