From 1caae96a970e7589b2c0a45f2e217d7c2f5b2ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=9A=D1=80=D0=B8=D0=B2?= =?UTF-8?q?=D0=BE=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 23 Jul 2026 02:17:16 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D1=83=D0=B5=D0=BC=20create=5Fticket=5Fin=5Fsd=20?= =?UTF-8?q?=D0=B8=D0=B7=20service=5Fdesk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- instruct/handlers.py | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/instruct/handlers.py b/instruct/handlers.py index 24b14bc..ced40ea 100644 --- a/instruct/handlers.py +++ b/instruct/handlers.py @@ -8,8 +8,6 @@ from utils.texts import ( ) import logging import asyncio -import httpx -import json import os from trueconf import Router, Message @@ -20,23 +18,11 @@ from utils.states import get_state, set_state, clear_state # 🔌 Импортируем централизованную функцию сбора статистики из main from utils.stats_logger import log_menu_stats +# 🔌 Импортируем рабочую функцию создания заявки из SD модуля +from service_desk.handlers import create_ticket_in_sd + logger = logging.getLogger(__name__) - -async def sd_create_ticket(login: str, subject: str, description: str) -> str: - """Создать заявку в SD.""" - from config.config import SD_URL, SD_TOKEN, DEFAULT_REQUESTER - headers = {"authtoken": SD_TOKEN, "Accept": "application/vnd.manageengine.sdp.v3+json"} - endpoint = f"{SD_URL}/api/v3/requests" - html_desc = f"

{description}



Создано через TrueConf КЛЕВЕР

" - payload = {"request": {"subject": subject, "description": html_desc, "requester": {"email_id": DEFAULT_REQUESTER}, "udf_fields": {}}} - async with httpx.AsyncClient(verify=False) as client: - resp = await client.post(endpoint, headers=headers, data={"input_data": json.dumps(payload)}, timeout=15.0) - data = resp.json() - if data.get("response_status", {}).get("status_code") == 2000: - return str(data.get("request", {}).get("id")) - return None - router = Router() # Путь к файлу инструкции Trueconf @@ -124,7 +110,7 @@ async def instruct_router_handler(msg: Message): if not result.get("in_group", True): subject = f"Запрос доступа к Trueconf" description = f"Пользователь {cn} ({user_id}) запросил инструкцию по Trueconf, но не имеет группы 2FA. Требуется выдача доступа." - ticket_id = await sd_create_ticket(login, subject, description) + ticket_id = await create_ticket_in_sd(DEFAULT_REQUESTER, subject, description, "Кемерово") logger.info(f"SD ticket created for {cn}: #{ticket_id}") except Exception as e: logger.error(f"Ошибка создания SD заявки: {e}", exc_info=True)