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_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)
elif pms_name == "shelter" or pms_name == "shelter":
from pms_integration.plugins.shelter_pms import ShelterPMSPlugin
self.plugin = ShelterPMSPlugin(self.hotel)
else:
raise ValueError(f"Неизвестный PMS: {pms_name}")
# Формируем имя модуля и класса плагина
plugin_module_name = f"pms_integration.plugins.{pms_name}_pms"
plugin_class_name = f"{pms_name.capitalize()}PMSPlugin"
try:
# Динамически импортируем модуль плагина
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):
"""
Получает данные из PMS с использованием загруженного плагина.

View File

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