cleanings

This commit is contained in:
2024-12-14 08:34:35 +09:00
parent f19b544459
commit 0199fcc96f
27 changed files with 6302 additions and 29 deletions

View File

@@ -121,6 +121,52 @@ async def delete_hotel(update: Update, context):
# await pms_manager.save_log("error", str(e))
# await query.edit_message_text(f"❌ Ошибка: {e}")
# async def check_pms(update, context):
# query = update.callback_query
# try:
# # Получение ID отеля из callback_data
# hotel_id = query.data.split("_")[2]
# # Получение конфигурации отеля и PMS
# hotel = await sync_to_async(Hotel.objects.select_related('pms').get)(id=hotel_id)
# pms_config = hotel.pms
# if not pms_config:
# await query.edit_message_text("PMS конфигурация не найдена.")
# return
# # Создаем экземпляр PMSIntegrationManager
# pms_manager = PMSIntegrationManager(hotel_id=hotel_id)
# await pms_manager.load_hotel()
# await sync_to_async(pms_manager.load_plugin)()
# # Проверяем, какой способ интеграции использовать
# if hasattr(pms_manager.plugin, 'fetch_data') and callable(pms_manager.plugin.fetch_data):
# # Плагин поддерживает метод fetch_data
# data = await pms_manager.plugin.fetch_data()
# elif pms_config.api_url and pms_config.token:
# # Используем прямой запрос к API
# from pms_integration.api_client import APIClient
# api_client = APIClient(base_url=pms_config.api_url, access_token=pms_config.token)
# data = api_client.fetch_reservations()
# else:
# # Если подходящий способ не найден
# await query.edit_message_text("Подходящий способ интеграции с PMS не найден.")
# return
# # Сохраняем данные в базу
# from bot.utils.database import save_reservations
# await sync_to_async(save_reservations)(data)
# # Уведомляем об успешной интеграции
# await query.edit_message_text(f"Интеграция PMS {pms_config.name} завершена успешно.")
# except Exception as e:
# # Обрабатываем и логируем ошибки
# await query.edit_message_text(f"❌ Ошибка: {str(e)}")
async def check_pms(update, context):
query = update.callback_query
@@ -144,28 +190,28 @@ async def check_pms(update, context):
# Проверяем, какой способ интеграции использовать
if hasattr(pms_manager.plugin, 'fetch_data') and callable(pms_manager.plugin.fetch_data):
# Плагин поддерживает метод fetch_data
data = await pms_manager.plugin.fetch_data()
elif pms_config.api_url and pms_config.token:
# Используем прямой запрос к API
from pms_integration.api_client import APIClient
api_client = APIClient(base_url=pms_config.api_url, access_token=pms_config.token)
data = api_client.fetch_reservations()
report = await pms_manager.plugin._fetch_data()
else:
# Если подходящий способ не найден
await query.edit_message_text("Подходящий способ интеграции с PMS не найден.")
return
# Сохраняем данные в базу
from bot.utils.database import save_reservations
await sync_to_async(save_reservations)(data)
# Формируем сообщение о результатах
result_message = (
f"Интеграция PMS завершена успешно.\n"
f"Обработано интервалов: {report['processed_intervals']}\n"
f"Обработано записей: {report['processed_items']}\n"
f"Ошибки: {len(report['errors'])}"
)
if report["errors"]:
result_message += "\n\nСписок ошибок:\n" + "\n".join(report["errors"])
# Уведомляем об успешной интеграции
await query.edit_message_text(f"Интеграция PMS {pms_config.name} завершена успешно.")
await query.edit_message_text(result_message)
except Exception as e:
# Обрабатываем и логируем ошибки
await query.edit_message_text(f"❌ Ошибка: {str(e)}")
async def setup_rooms(update: Update, context):
"""Настроить номера отеля."""
query = update.callback_query