Merge branch 'PMSManager_refactor'
Some checks reported errors
continuous-integration/drone Build was killed
Some checks reported errors
continuous-integration/drone Build was killed
This commit is contained in:
@@ -52,6 +52,7 @@ class PMSIntegrationManager:
|
||||
"""
|
||||
Загружает плагин, соответствующий PMS конфигурации отеля.
|
||||
"""
|
||||
<<<<<<< HEAD
|
||||
pms_name = self.hotel.pms.plugin_name.lower()
|
||||
if pms_name in self.plugins:
|
||||
plugin_class = self.plugins[pms_name]
|
||||
@@ -60,6 +61,28 @@ class PMSIntegrationManager:
|
||||
else:
|
||||
raise ValueError(f"Неизвестный PMS: {pms_name}")
|
||||
|
||||
=======
|
||||
pms_name = self.hotel.pms.plugin_name.lower() # Приводим название плагина к нижнему регистру
|
||||
|
||||
# Формируем имя модуля и класса плагина
|
||||
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}")
|
||||
>>>>>>> PMSManager_refactor
|
||||
def fetch_data(self):
|
||||
"""
|
||||
Получает данные из PMS с использованием загруженного плагина.
|
||||
|
||||
Reference in New Issue
Block a user