Browse Source

Merge branch 'unstable' of blezz-tech/sharix-open-webservice-running into unstable

41 changed files with 113 additions and 67 deletions
  1. 25 0
      handlers/.env.example
  2. 2 1
      handlers/.gitignore
  3. 13 0
      handlers/BotClass.py
  4. 0 38
      handlers/classes/Ticket_user.py
  5. 32 0
      handlers/config.py
  6. 25 0
      handlers/core/data_parsers.py
  7. 1 1
      handlers/depr/handlers/old_st_request_assigned.py
  8. 1 1
      handlers/depr/handlers/old_st_request_done.py
  9. 1 1
      handlers/depr/handlers/old_st_request_new.py
  10. 1 1
      handlers/depr/handlers/old_st_request_wontfix.py
  11. 0 0
      handlers/depr/handlers/open_access_request_accepted.py
  12. 0 0
      handlers/depr/handlers/open_access_request_pending.py
  13. 0 0
      handlers/depr/handlers/open_basic_bot.py
  14. 0 0
      handlers/depr/handlers/open_neg_request_accepted.py
  15. 0 0
      handlers/depr/handlers/open_neg_request_pending.py
  16. 0 0
      handlers/depr/handlers/open_service_request_accepted.py
  17. 0 0
      handlers/depr/handlers/open_service_request_assigned.py
  18. 0 0
      handlers/depr/handlers/open_service_request_booked.py
  19. 0 0
      handlers/depr/handlers/open_service_request_booked_v2.py
  20. 0 0
      handlers/depr/handlers/open_service_request_closed.py
  21. 0 0
      handlers/depr/handlers/open_service_request_declined.py
  22. 0 0
      handlers/depr/handlers/open_service_request_done.py
  23. 0 0
      handlers/depr/handlers/open_service_request_forcemajeure.py
  24. 0 0
      handlers/depr/handlers/open_service_request_pending.py
  25. 0 0
      handlers/depr/handlers/open_service_request_preforcemajeure.py
  26. 0 0
      handlers/depr/handlers/open_service_request_prestart.py
  27. 0 0
      handlers/depr/handlers/open_service_request_process.py
  28. 0 0
      handlers/depr/handlers/open_st_request_assigned.py
  29. 0 0
      handlers/depr/handlers/open_st_request_done.py
  30. 0 0
      handlers/depr/handlers/open_st_request_dublicate.py
  31. 0 0
      handlers/depr/handlers/open_st_request_in_process.py
  32. 0 0
      handlers/depr/handlers/open_st_request_new.py
  33. 0 0
      handlers/depr/handlers/open_st_request_reopened.py
  34. 0 0
      handlers/depr/handlers/open_st_request_wontfix.py
  35. 0 0
      handlers/depr/handlers/open_student_handler.py
  36. 0 0
      handlers/depr/handlers/open_template_bot.py
  37. 1 1
      handlers/depr/handlers/st_request_in_process.py
  38. 5 3
      handlers/handlers/open_access_request_pending.py
  39. 3 19
      handlers/jsonAndRequest.py
  40. 2 0
      handlers/requirements.txt
  41. 1 1
      handlers/status_changer.py

+ 25 - 0
handlers/.env.example

@@ -0,0 +1,25 @@
+open_basic_bot_key=
+status_changer_key=
+open_access_request_accepted_key=
+open_access_request_pending_key=
+open_neg_request_accepted_key=
+open_neg_request_pending_key=
+open_service_request_accepted_key=
+open_service_request_assigned_key=
+open_service_request_booked_key=
+open_service_request_booked_v2_key=
+open_service_request_closed_key=
+open_service_request_declined_key=
+open_service_request_done_key=
+open_service_request_forcemajeure_key=
+open_service_request_pending_key=
+open_service_request_preforcemajeure_key=
+open_service_request_prestart_key=
+open_service_request_process_key=
+open_st_request_assigned_key=
+open_st_request_done_key=
+open_st_request_dublicate_key=
+open_st_request_in_process_key=
+open_st_request_new_key=
+open_st_request_reopened_key=
+open_st_request_wontfix_key=

+ 2 - 1
handlers/.gitignore

@@ -3,4 +3,5 @@ env/
 config.py
 *bottickets.log
 *.log
-*~
+*~
+.env

+ 13 - 0
handlers/BotClass.py

@@ -13,6 +13,8 @@ class JabberBot:
         self.user, self.server, self.password, self.port = jid.getNode(), jid.getDomain(), password, port
         self.connect()
         self.auth()
+        # TODO: Добавить поля
+        #         botname
 
     # Метод проверки подключения к серверу xmpp
     def connect(self):
@@ -42,6 +44,17 @@ class JabberBot:
             return 0
         return 1
 
+    # TODO: Рефакторинг логов после добавления полей в JabbrBot
+    # def bot_log(self, message):
+    #     self.bot_basic_log(self.botname + " " + str(datetime.now()) + " " + "Заказ ожидает пользовательской реакции\n")
+
+    # def bot_basic_log(self, message):
+    #     # надо строчку лога сделать более информативной
+    #     logfile = open("logs/" + datetime.now().strftime('%Y-%m-%d') + "-" + self.user + ".log", "a")
+    #     logfile.write(message)
+    #     logfile.close()
+    #     print(message)
+
     def bot_log(self, message):
         # надо строчку лога сделать более информативной
         logfile = open("logs/" + datetime.now().strftime('%Y-%m-%d') + "-" + self.user + ".log", "a")

+ 0 - 38
handlers/classes/Ticket_user.py

@@ -1,38 +0,0 @@
-class Ticket_user(object):
-    def __init__(
-            self,
-            id,
-            status,
-            title,
-            ticket_type,
-            created_at,
-            updated_at,
-            due_date,
-            priority,
-            created_by,
-            assigned_to
-    ):
-        self.id = id
-        self.status = status
-        self.title = title
-        self.ticket_type = ticket_type
-        self.created_at = created_at
-        self.updated_at = updated_at
-        self.due_date = due_date
-        self.priority = priority
-        self.created_by = created_by
-        self.assigned_to = assigned_to
-
-    def __str__(self):
-        return "{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}\n".format(
-            self.id,
-            self.status,
-            self.title,
-            self.ticket_type,
-            self.created_at,
-            self.updated_at,
-            self.due_date,
-            self.priority,
-            self.created_by,
-            self.assigned_to
-        )

+ 32 - 0
handlers/config.py

@@ -1,3 +1,8 @@
+from dotenv import load_dotenv
+import os
+
+load_dotenv()
+
 # rename this file to config.py
 BOTLIST = [
     'open_basic_bot',
@@ -35,3 +40,30 @@ API_URL = "https://testopen.sharix-app.org/"
 LOG_DIR = "./log/"
 
 DEFAULT_INTERVAL_ATTEMPTS = 10
+
+class KEYS:
+    OPEN_BASIC_BOT = os.getenv('open_basic_bot_key')
+    STATUS_CHANGER = os.getenv('status_changer_key')
+    OPEN_ACCESS_REQUEST_ACCEPTED = os.getenv('open_access_request_accepted_key')
+    OPEN_ACCESS_REQUEST_PENDING = os.getenv('open_access_request_pending_key')
+    OPEN_NEG_REQUEST_ACCEPTED = os.getenv('open_neg_request_accepted_key')
+    OPEN_NEG_REQUEST_PENDING = os.getenv('open_neg_request_pending_key')
+    OPEN_SERVICE_REQUEST_ACCEPTED = os.getenv('open_service_request_accepted_key')
+    OPEN_SERVICE_REQUEST_ASSIGNED = os.getenv('open_service_request_assigned_key')
+    OPEN_SERVICE_REQUEST_BOOKED = os.getenv('open_service_request_booked_key')
+    OPEN_SERVICE_REQUEST_BOOKED_V2 = os.getenv('open_service_request_booked_v2_key')
+    OPEN_SERVICE_REQUEST_CLOSED = os.getenv('open_service_request_closed_key')
+    OPEN_SERVICE_REQUEST_DECLINED = os.getenv('open_service_request_declined_key')
+    OPEN_SERVICE_REQUEST_DONE = os.getenv('open_service_request_done_key')
+    OPEN_SERVICE_REQUEST_FORCEMAJEURE = os.getenv('open_service_request_forcemajeure_key')
+    OPEN_SERVICE_REQUEST_PENDING = os.getenv('open_service_request_pending_key')
+    OPEN_SERVICE_REQUEST_PREFORCEMAJEURE = os.getenv('open_service_request_preforcemajeure_key')
+    OPEN_SERVICE_REQUEST_PRESTART = os.getenv('open_service_request_prestart_key')
+    OPEN_SERVICE_REQUEST_PROCESS = os.getenv('open_service_request_process_key')
+    OPEN_ST_REQUEST_ASSIGNED = os.getenv('open_st_request_assigned_key')
+    OPEN_ST_REQUEST_DONE = os.getenv('open_st_request_done_key')
+    OPEN_ST_REQUEST_DUBLICATE = os.getenv('open_st_request_dublicate_key')
+    OPEN_ST_REQUEST_IN_PROCESS = os.getenv('open_st_request_in_process_key')
+    OPEN_ST_REQUEST_NEW = os.getenv('open_st_request_new_key')
+    OPEN_ST_REQUEST_REOPENED = os.getenv('open_st_request_reopened_key')
+    OPEN_ST_REQUEST_WONTFIX = os.getenv('open_st_request_wontfix_key')

+ 25 - 0
handlers/core/data_parsers.py

@@ -0,0 +1,25 @@
+
+import json
+from classes.Order import Order
+from classes.OrderTicket import OrderTicket
+
+
+def jsonToOrder(jsonstring) -> Order:
+    """
+    Функция преобразования json в объект класса Order
+    """
+    jsonObj = json.loads(jsonstring)
+    print(jsonObj)
+    u = Order(**jsonObj)
+    return u
+
+
+def jsonToOrderTicket(jsonstring) -> OrderTicket:
+    """
+    Функция преобразования json в объект класса OrderTicket
+    """
+    print(jsonstring)
+    jsonObj = json.loads(jsonstring)
+    print(jsonObj)
+    u = OrderTicket(**jsonObj)
+    return u

+ 1 - 1
handlers/old_st_request_assigned.py → handlers/depr/handlers/old_st_request_assigned.py

@@ -49,7 +49,7 @@ def status_changer_wait(period, localtask):
 
 def status_changer_process(ticket):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Тикет в обработчике\n")
-    tickets_new = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
+    tickets_new = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
     # if ticket.id == 2103:
     #     for ticket_new in tickets_new:
     #         metaservice_admin(ticket_new,ticket.group)

+ 1 - 1
handlers/old_st_request_done.py → handlers/depr/handlers/old_st_request_done.py

@@ -49,7 +49,7 @@ def status_changer_wait(period, localtask):
 
 def status_changer_process(ticket):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Тикет в обработчике\n")
-    tickets_new = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
+    tickets_new = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
     # if ticket.id == 2103:
     #     for ticket_new in tickets_new:
     #         metaservice_admin(ticket_new,ticket.group)

+ 1 - 1
handlers/old_st_request_new.py → handlers/depr/handlers/old_st_request_new.py

@@ -43,7 +43,7 @@ idle_value = 10
 
 
 def status_new_process(ticket):
-    tickets_new = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
+    tickets_new = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
     for ticket_new in tickets_new:
         send_to_user(ticket_new)
 

+ 1 - 1
handlers/old_st_request_wontfix.py → handlers/depr/handlers/old_st_request_wontfix.py

@@ -49,7 +49,7 @@ def status_changer_wait(period, localtask):
 
 def status_changer_process(ticket):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Тикет в обработчике\n")
-    tickets_new = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
+    tickets_new = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
     # if ticket.id == 2103:
     #     for ticket_new in tickets_new:
     #         metaservice_admin(ticket_new,ticket.group)

+ 0 - 0
handlers/open_access_request_accepted.py → handlers/depr/handlers/open_access_request_accepted.py


+ 0 - 0
handlers/open_access_request_pending.py → handlers/depr/handlers/open_access_request_pending.py


+ 0 - 0
handlers/open_basic_bot.py → handlers/depr/handlers/open_basic_bot.py


+ 0 - 0
handlers/open_neg_request_accepted.py → handlers/depr/handlers/open_neg_request_accepted.py


+ 0 - 0
handlers/open_neg_request_pending.py → handlers/depr/handlers/open_neg_request_pending.py


+ 0 - 0
handlers/open_service_request_accepted.py → handlers/depr/handlers/open_service_request_accepted.py


+ 0 - 0
handlers/open_service_request_assigned.py → handlers/depr/handlers/open_service_request_assigned.py


+ 0 - 0
handlers/open_service_request_booked.py → handlers/depr/handlers/open_service_request_booked.py


+ 0 - 0
handlers/open_service_request_booked_v2.py → handlers/depr/handlers/open_service_request_booked_v2.py


+ 0 - 0
handlers/open_service_request_closed.py → handlers/depr/handlers/open_service_request_closed.py


+ 0 - 0
handlers/open_service_request_declined.py → handlers/depr/handlers/open_service_request_declined.py


+ 0 - 0
handlers/open_service_request_done.py → handlers/depr/handlers/open_service_request_done.py


+ 0 - 0
handlers/open_service_request_forcemajeure.py → handlers/depr/handlers/open_service_request_forcemajeure.py


+ 0 - 0
handlers/open_service_request_pending.py → handlers/depr/handlers/open_service_request_pending.py


+ 0 - 0
handlers/open_service_request_preforcemajeure.py → handlers/depr/handlers/open_service_request_preforcemajeure.py


+ 0 - 0
handlers/open_service_request_prestart.py → handlers/depr/handlers/open_service_request_prestart.py


+ 0 - 0
handlers/open_service_request_process.py → handlers/depr/handlers/open_service_request_process.py


+ 0 - 0
handlers/open_st_request_assigned.py → handlers/depr/handlers/open_st_request_assigned.py


+ 0 - 0
handlers/open_st_request_done.py → handlers/depr/handlers/open_st_request_done.py


+ 0 - 0
handlers/open_st_request_dublicate.py → handlers/depr/handlers/open_st_request_dublicate.py


+ 0 - 0
handlers/open_st_request_in_process.py → handlers/depr/handlers/open_st_request_in_process.py


+ 0 - 0
handlers/open_st_request_new.py → handlers/depr/handlers/open_st_request_new.py


+ 0 - 0
handlers/open_st_request_reopened.py → handlers/depr/handlers/open_st_request_reopened.py


+ 0 - 0
handlers/open_st_request_wontfix.py → handlers/depr/handlers/open_st_request_wontfix.py


+ 0 - 0
handlers/open_student_handler.py → handlers/depr/handlers/open_student_handler.py


+ 0 - 0
handlers/open_template_bot.py → handlers/depr/handlers/open_template_bot.py


+ 1 - 1
handlers/st_request_in_process.py → handlers/depr/handlers/st_request_in_process.py

@@ -61,7 +61,7 @@ def process_in_progress_ticket(ticket, timeout, reminder_interval):
                 break
 
         # Проверяем, не изменился ли статус тикета
-        updated_ticket_list = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket/{ticket.id}/")
+        updated_ticket_list = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket/{ticket.id}/")
         if updated_ticket_list and updated_ticket_list[0].status != "IN PROCESS":
             break
 

+ 5 - 3
handlers/handlers/open_access_request_pending.py

@@ -12,7 +12,7 @@ from typing import List
 from concurrent.futures import ThreadPoolExecutor
 from core.SystemdKiller import SystemdKiller
 from core.utils import get_init_data
-
+from jsonAndRequest import requestGetListUser
 botname = "open_access_request_pending"
 operating_status = 320
 
@@ -117,8 +117,10 @@ def processing(ticket: Ticket) -> None:
 
     message = f"Тикет {ticket.id} ожидает решения"
 
-    send_notification_to_admins(ticket, message)
-    bot.send_message(ticket.assigned_to, message)
+    print(requestGetListUser())
+
+    # send_notification_to_admins(ticket, message)
+    # bot.send_message(ticket.assigned_to, message)
 
     logging.debug(f"Конец обработки тикета {ticket.id}")
 

+ 3 - 19
handlers/jsonAndRequest.py

@@ -6,25 +6,9 @@ import config
 from classes.Answer import Answer
 from classes.Order import Order
 from classes.OrderTicket import OrderTicket
-from classes.Ticket_user import Ticket_user
+from classes.Ticket import Ticket
 
 
-# Функция преобразования json в объект класса Order
-def jsonToOrder(jsonstring) -> Order:
-    jsonObj = json.loads(jsonstring)
-    print(jsonObj)
-    u = Order(**jsonObj)
-    return u
-
-
-# Функция преобразования json в объект класса OrderTicket
-def jsonToOrderTicket(jsonstring) -> OrderTicket:
-    print(jsonstring)
-    jsonObj = json.loads(jsonstring)
-    print(jsonObj)
-    u = OrderTicket(**jsonObj)
-    return u
-
 
 # Функция обращения к апи и получение токена
 def requestGetToken(login, password, url) -> str:
@@ -119,7 +103,7 @@ def requestGetList(auth_token, url):
     return startlist
 
 
-def requestGetTicket_user(auth_token, url):
+def requestGetTicket(auth_token, url):
     headers = {'Authorization': f'Token {auth_token}'}
     response = requests.get(url, headers=headers)
 
@@ -131,7 +115,7 @@ def requestGetTicket_user(auth_token, url):
     else:
         for i in tickettext:
             try:
-                ticket = Ticket_user(**i)
+                ticket = Ticket(**i)
                 startlist.append(ticket)
             except Exception as ex:
                 print(ex)

+ 2 - 0
handlers/requirements.txt

@@ -2,11 +2,13 @@ aiodns==3.2.0
 certifi==2022.12.7
 cffi==1.17.1
 charset-normalizer==3.1.0
+dotenv==0.9.9
 idna==3.4
 pyasn1==0.6.1
 pyasn1_modules==0.4.1
 pycares==4.5.0
 pycparser==2.22
+python-dotenv==1.1.0
 requests==2.29.0
 six==1.16.0
 slixmpp==1.9.1

+ 1 - 1
handlers/status_changer.py

@@ -49,7 +49,7 @@ def status_changer_wait(period, localtask):
 
 def status_changer_process(ticket):
     bot.bot_log(botname + " " + str(datetime.now()) + " " + "Тикет в обработчике\n")
-    tickets_new = jsreq.requestGetTicket_user(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
+    tickets_new = jsreq.requestGetTicket(token, config.API_URL + f"tickets/api/ticket_list/{ticket.id}")
     if ticket.id == 2103:
         for ticket_new in tickets_new:
             metaservice_admin(ticket_new, ticket.group)