ソースを参照

few bug fixes to make it able to run

Dev Server 1 年間 前
コミット
f4b4caa58a
3 ファイル変更47 行追加35 行削除
  1. 1 1
      BotClass.py
  2. 35 16
      jsonAndRequest.py
  3. 11 18
      open_template_bot.py

+ 1 - 1
BotClass.py

@@ -42,7 +42,7 @@ class JabberBot:
 
     def fake_api_call(self, message):        
         #HTTP запрос
-        jsreq.requestGetListUser()
+        #jsreq.requestGetListUser()
         #cli.send_message(self.user, self.password, "test@ej.sharix-app.org", message)
         print('fake_api_call: ', message)
 

+ 35 - 16
jsonAndRequest.py

@@ -1,5 +1,7 @@
 import json
 import requests
+import config
+
 #Тестовый класс User и Address (ВАЖНО!!!) поля классов должны называться также как и поля json объекта
 
 #Full json order example
@@ -163,7 +165,7 @@ class Order(object):
 '''
 
 class OrderTicket(object):
-    def __init__(self, id, status, created_date, status_changed_date, priority, title=None, note=None, due_date=None, task_list, created_by, type, assigned_to=None):
+    def __init__(self, id, status, created_date, status_changed_date, priority, title=None, note=None, due_date=None, task_list=None, created_by=None, type=None, assigned_to=None):
         self.id = id
         self.status = status
         self.created_date = created_date
@@ -188,10 +190,10 @@ def jsonToOrder(jsonstring) -> Order:
     return u
 
 #Функция преобразования json в объект класса OrderTicket
-def jsonToTicket(jsonstring) -> OrderTicket:
+def jsonToOrderTicket(jsonstring) -> OrderTicket:
     jsonObj = json.loads(jsonstring)
     print(jsonObj)
-    u = Order(**jsonObj)
+    u = OrderTicket(**jsonObj)
     return u
 
 #Функция обращения к апи и получение токена
@@ -227,21 +229,38 @@ def requestGetListUser():
     print(response.json())
 
 
-def requestGetList(login, password, url):
-    auth_token=requestGetToken(login, password, url)
+def requestGetList(auth_token, url):
+    #auth_token=requestGetToken(login, password, url)
     #print(auth_token)
     headers = {'Authorization': f'Token {auth_token}'}
     #url = 'https://user.sharix-app.org/platform/api/sharix-users/'
-    response = requests.get(API_URL+"/metaservicesynced/api/orders/", headers=headers)
+    response = requests.get(config.API_URL+"/tickets/api/tickets/?list_id=10", headers=headers)
+    #response = requests.get(config.API_URL+"/metaservicesynced/api/orders/", headers=headers)
     print(response)
-    print(response.json())
-    if not json:
-        print("Empty array")
-    else:
-        for i in json:
-            try:
-                order = Order(**i)
-                print(order)
-            except Exception as ex:
-                print(ex)
+    #return response.json()
+    #print(response.json())
+    ordertext=response.json()
+    startlist = []
+    
+    #if not ordertext:
+    #    print("Empty array")
+    #else:
+    #    for i in ordertext:
+    #        print (i, "PROCESSING")
+    #        try:
+    #            orderticket = OrderTicket(**i)
+    #            print(i, "ORDER ", orderticket)
+    #        except Exception as ex:
+    #            print(ex)
+
+    if ordertext is not None:
+            orderObj = jsonToOrderTicket(ordertext)
+            print (orderObj)
+            startlist.append(orderObj)
+            process_status.append(0)
+            bot.bot_log(str(datetime.now())+" аказ успешно добавлен в очередь обработки\n")
+
+
+    #print (orderticket)
+    return startlist
 

+ 11 - 18
open_template_bot.py

@@ -42,18 +42,6 @@ def message_handler(conn, mess):
     text = mess.getBody()#текст сообщения боту
     user = mess.getFrom()#отправитель сообщения
     #user = mess.getNode()#только jid 
-    #example json to object user
-    if text is not None:
-        """ example json
-            {
-                "name":"Cristian", 
-                "address":
-                {
-                    "street":"Sesame",
-                    "number":122
-                }
-            }
-        """
    
    #нужна проверка, данный обработчик вообще должен от данного отправителя получать сообщения или нет. Подсказка ниже
     print (str(user).split("/")[0])
@@ -80,7 +68,7 @@ def open_bot_template():
     for i in range(len(tasklist)):
         #проверяем элемент tasklist[i]
         bot.bot_log(botname + " " + datetime.now().strftime('%Y-%m-%d') + " " + str(i) + " " + "Заказ в очереди на обработке\n")
-        print ("TASKLIST", tasklist[i], process_status[i])
+        print ("EACH TASKLIST", tasklist[i], process_status[i])
         
         #если много циклов с процессом ничего не происходит - это неправильно и отдаем заказ на обработку по форсмажору
         if (process_status[i]>idle_value):
@@ -97,9 +85,9 @@ def open_bot_template():
             continue
         
         if (process_status[i]==0):
-            print ("Proceeding started")
+            print ("Proceeding started", tasklist[i])
             #example of function that should be run each time process is ready
-            bot.fake_api_call(tasklist[i].name)
+            bot.fake_api_call(tasklist[i].ticket)
 
             if (tasklist[i].ticket==122):
                 #function that need to be run as thread 
@@ -132,14 +120,19 @@ def open_bot_template():
 tasklist = []
 
 #надо инициализировать tasklist при запуске из API
-token = requestGetToken(botname, PASSWORD, API_URL+"/auth/token/login/")
+token = jsreq.requestGetToken(botname, PASSWORD, config.API_URL+"/auth/token/login/")
 #requestGetList(token, API_URL+"/tickets/api/tickets")
-requestGetList(botname, password, API_URL+"/tickets/api/tickets")
+tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets/?list_id=10")
+#tasklist=jsreq.requestGetList(token, config.API_URL+"/tickets/api/tickets")
 #надо дописать таким образом, чтобы tasklist пополнялся тикетами определенного листа, а не всех
-
+#print ("TASKLIST ", tasklist)
+print (len(tasklist))
 
 #список статусов обработки заказов
 process_status = []
+while len(process_status)<len(tasklist):
+    process_status.append(0)
+
 
 bot = JabberBot(JID, PASSWORD, PORT)