|
@@ -1,11 +1,8 @@
|
|
|
|
+import json
|
|
import requests
|
|
import requests
|
|
-import xmpp
|
|
|
|
-from xmpp import cli
|
|
|
|
import config
|
|
import config
|
|
-from BotClass import JabberBot
|
|
|
|
-import json
|
|
|
|
import hashlib
|
|
import hashlib
|
|
-from datetime import datetime, timedelta
|
|
|
|
|
|
+from datetime import datetime
|
|
import time
|
|
import time
|
|
import threading
|
|
import threading
|
|
import jsonAndRequest as jsreq
|
|
import jsonAndRequest as jsreq
|
|
@@ -26,18 +23,15 @@ DEFAULT_REMINDER_INTERVAL = 30 * 60 # 30 минут в секундах
|
|
MAX_REMINDERS = 3 # Максимальное количество напоминаний
|
|
MAX_REMINDERS = 3 # Максимальное количество напоминаний
|
|
|
|
|
|
def send_reminder(user, ticket):
|
|
def send_reminder(user, ticket):
|
|
- # Функция для отправки напоминания пользователю
|
|
|
|
message = f"Напоминание: необходимо принять решение по тикету {ticket.id}"
|
|
message = f"Напоминание: необходимо принять решение по тикету {ticket.id}"
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
print(f"Отправлено напоминание пользователю {user} о тикете {ticket.id}")
|
|
print(f"Отправлено напоминание пользователю {user} о тикете {ticket.id}")
|
|
|
|
|
|
def send_wontfix_notification(user, ticket):
|
|
def send_wontfix_notification(user, ticket):
|
|
- # Функция для отправки уведомления об отказе
|
|
|
|
message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
message = f"Уведомление: тикет {ticket.id} был отмечен как WONTFIX из-за отсутствия действий"
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
# Здесь должен быть код для отправки сообщения пользователю
|
|
print(f"Отправлено уведомление пользователю {user} о WONTFIX для тикета {ticket.id}")
|
|
print(f"Отправлено уведомление пользователю {user} о WONTFIX для тикета {ticket.id}")
|
|
|
|
|
|
-
|
|
|
|
def process_in_progress_ticket(ticket, timeout, reminder_interval):
|
|
def process_in_progress_ticket(ticket, timeout, reminder_interval):
|
|
start_time = datetime.now()
|
|
start_time = datetime.now()
|
|
reminders_sent = 0
|
|
reminders_sent = 0
|
|
@@ -48,7 +42,7 @@ def process_in_progress_ticket(ticket, timeout, reminder_interval):
|
|
|
|
|
|
if timeout != INFINITE_TIMEOUT and time_in_progress > timeout:
|
|
if timeout != INFINITE_TIMEOUT and time_in_progress > timeout:
|
|
# Превышен таймаут, меняем статус на WONTFIX
|
|
# Превышен таймаут, меняем статус на WONTFIX
|
|
- jsreq.change_ticket_status(token, config.API_URL, ticket.id, "WONTFIX")
|
|
|
|
|
|
+ jsreq.requestPatchTicketUser(token, config.API_URL + f"tickets/api/ticket/{ticket.id}/", {"status": "WONTFIX"})
|
|
send_wontfix_notification(ticket.assigned_to, ticket)
|
|
send_wontfix_notification(ticket.assigned_to, ticket)
|
|
break
|
|
break
|
|
|
|
|
|
@@ -58,13 +52,13 @@ def process_in_progress_ticket(ticket, timeout, reminder_interval):
|
|
|
|
|
|
if reminders_sent >= MAX_REMINDERS:
|
|
if reminders_sent >= MAX_REMINDERS:
|
|
# Превышено максимальное количество напоминаний
|
|
# Превышено максимальное количество напоминаний
|
|
- jsreq.change_ticket_status(token, config.API_URL, ticket.id, "WONTFIX")
|
|
|
|
|
|
+ jsreq.requestPatchTicketUser(token, config.API_URL + f"tickets/api/ticket/{ticket.id}/", {"status": "WONTFIX"})
|
|
send_wontfix_notification(ticket.assigned_to, ticket)
|
|
send_wontfix_notification(ticket.assigned_to, ticket)
|
|
break
|
|
break
|
|
|
|
|
|
# Проверяем, не изменился ли статус тикета
|
|
# Проверяем, не изменился ли статус тикета
|
|
- updated_ticket = jsreq.get_ticket(token, config.API_URL, ticket.id)
|
|
|
|
- if updated_ticket.status != "IN PROCESS":
|
|
|
|
|
|
+ updated_ticket_list = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket/{ticket.id}/")
|
|
|
|
+ if updated_ticket_list and updated_ticket_list[0].status != "IN PROCESS":
|
|
break
|
|
break
|
|
|
|
|
|
time.sleep(60) # Проверяем каждую минуту
|
|
time.sleep(60) # Проверяем каждую минуту
|