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()

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