fix: add email alerts for all SD module errors
This commit is contained in:
@@ -149,6 +149,7 @@ async def create_ticket_in_sd(requester_email: str, subject: str, description: s
|
||||
except (httpx.RequestError, httpx.HTTPStatusError, Exception) as e:
|
||||
logger.error(f"❌ [SD Network Error] Не удалось подключиться к ServiceDesk: {e}")
|
||||
sd_workflow_logger.error(f"❌ [SD Network Error] {e}")
|
||||
_sd_log_and_notify_email("Подключение к ServiceDesk", str(e))
|
||||
return None
|
||||
|
||||
return None
|
||||
@@ -273,6 +274,7 @@ async def _create_ticket_and_attach_files(user_id, msg_text, session, msg, login
|
||||
except Exception as e:
|
||||
logger.exception(f"❌ [SD Ticket Error] {user_id}: {e}")
|
||||
sd_workflow_logger.error(f"❌ [SD Ticket Error] {user_id}: {e}")
|
||||
_sd_log_and_notify_email(f"Создание заявки для {user_id}", str(e))
|
||||
session["step"] = "need_text"
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
|
||||
@@ -295,6 +297,7 @@ async def _wait_for_attachments_and_create(user_id, session):
|
||||
except Exception as e:
|
||||
logger.exception(f"❌ [SD Ticket Failed] user={user_id}: {e}")
|
||||
sd_workflow_logger.error(f"❌ [SD Ticket] {e}")
|
||||
_sd_log_and_notify_email(f"Создание заявки для {user_id}", str(e))
|
||||
session["step"] = "need_text"
|
||||
try:
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
@@ -310,6 +313,7 @@ def _on_sd_timer_done(task: asyncio.Task, user_id: str):
|
||||
except Exception as e:
|
||||
logger.error(f"❌ Ошибка в таске таймера SD для {user_id}: {e}")
|
||||
sd_workflow_logger.error(f"❌ [SD Timer Error] {user_id}: {e}")
|
||||
_sd_log_and_notify_email(f"Таймер создания заявки для {user_id}", str(e))
|
||||
|
||||
@router.message()
|
||||
async def sd_module_handler(msg: Message):
|
||||
@@ -415,14 +419,18 @@ async def sd_module_handler(msg: Message):
|
||||
log_menu_stats(user_id, "Service Desk", f"Добавление файла к заявке #{ticket_id}")
|
||||
await msg.answer(sd_file_attached(), parse_mode="html")
|
||||
else:
|
||||
_sd_log_and_notify_email(f"Загрузка файла к заявке #{ticket_id}", f"file={att.get('file_name', 'unknown')}")
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
elif msg_text.strip():
|
||||
await msg.answer(UNKNOWN_MAIN_CMD_TEXT, parse_mode="html")
|
||||
return
|
||||
except Exception as e:
|
||||
logger.exception(f"❌ [SD Fatal Error] user={getattr(msg.from_user, 'id', 'unknown')}: {e}")
|
||||
user_id = getattr(msg.from_user, 'id', 'unknown')
|
||||
logger.exception(f"❌ [SD Fatal Error] user={user_id}: {e}")
|
||||
sd_workflow_logger.error(f"❌ [SD Fatal] {e}")
|
||||
_sd_log_and_notify_email(f"Обработка сообщения от {user_id}", str(e))
|
||||
try:
|
||||
await msg.answer(system_error_text(EMOJI_DIGITS), parse_mode="html")
|
||||
except Exception:
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user