Browse Source

A lot of changes: add class and other

WorldOfPets 2 years ago
parent
commit
5578ac83ff

+ 84 - 0
MyQuery.py

@@ -0,0 +1,84 @@
+from flask import jsonify
+from function import RestFunc
+restfunc = RestFunc()
+
+class MyQuery:
+    def auth_query(self, request_data):
+        try:
+            result = restfunc.query_select('''
+            SELECT * FROM rest_user
+            WHERE (rest_user.name=%s OR rest_user.email=%s) AND rest_user.password=%s;
+            ''', (request_data['login_email'], request_data['login_email'], request_data['password'],), True)
+            return restfunc.gen_token(result['id'], 5), 200
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+    
+    def add_query(self, request_data):
+        try:
+            proverka = restfunc.query_proverka(''' 
+            SELECT * FROM rest_user
+            WHERE rest_user.name=%s OR rest_user.email=%s;
+            ''', (request_data['name'], request_data['email']))
+            if(proverka):
+                return jsonify({"msg":"User exist!"}), 400
+            else:
+                result = restfunc.query_insert('''
+                INSERT INTO rest_user (name, birthday, lastlogintime, insys, idrole, email, password) 
+                VALUES (%s, %s, %s, %s, %s, %s, %s)
+                RETURNING id;
+                ''', \
+                    (request_data['name'], request_data['reg_date'],\
+                        request_data['log_time'], request_data['in_sys'],\
+                            request_data['role_id'], request_data['email'], request_data['password']))
+                return result, 201
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+    
+    def get_user_query(self, id):
+        try:
+            result = restfunc.query_select('''
+            SELECT * FROM rest_user WHERE id = %s;
+            ''', (id,), True)
+            return jsonify(result), 200
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+    
+    def get_all_user_query(self):
+        try:
+            result = restfunc.query_select('''
+            SELECT rest_user.id, rest_user.name, rest_user.birthday, rest_user.insys, rest_role.name AS role_name, rest_user.lastlogintime, rest_user.email, rest_user.password
+            FROM rest_user, rest_role
+            WHERE rest_user.idrole = rest_role.id
+            ORDER BY id ASC;
+            ''', (), False)
+            return jsonify(result), 200
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+    
+    def delete_user_query(self, request_data):
+        try:
+            result = restfunc.query_delete('''
+            DELETE FROM rest_user
+            WHERE id = %s;
+            ''', (request_data['id'],))
+            if(result):
+                return jsonify({"msg":"Successful removal!"}), 200
+            else:
+                return jsonify({"msg":"User does not exist!"}), 400
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+    
+    def update_user_query(self, request_data, id):
+        try:
+            result = restfunc.query_update(f'''
+            UPDATE rest_user
+            SET name = %s
+            WHERE id = %s;
+            ''', (request_data['name'], id))
+            if(result):
+                return jsonify({"msg":"Successful update!"}), 200
+            else:
+                return jsonify({"msg":"User does not exist!"}), 400
+        except Exception as ex:
+            return jsonify({"msg":str(ex)}), 500
+            

BIN
__pycache__/MyQuery.cpython-39.pyc


BIN
__pycache__/config.cpython-39.pyc


BIN
__pycache__/connect.cpython-39.pyc


BIN
__pycache__/function.cpython-39.pyc


+ 44 - 83
api.py

@@ -1,112 +1,73 @@
-from array import array
+from unittest import result
 from flask import Flask, jsonify, request
 from xmpp import cli
-from function import MyQueryClass
-from flask_jwt_extended import JWTManager, create_access_token, jwt_required, get_jwt_identity
-from datetime import datetime, timedelta
+from function import RestFunc
+from flask_jwt_extended import JWTManager, jwt_required, get_jwt_identity
+
 from config import Config
+from MyQuery import MyQuery
 #from OpenSSL import SSL
 
 #context = SSL.Context(SSL.PROTOCOL_TLSv1_2)
 #context.use_privatekey_file('server.key')
 #context.use_certificate_file('server.crt')
 ### ssl_context=context in run
-myquery = MyQueryClass()
+restfunc = RestFunc()
+db_query = MyQuery()
 app = Flask(__name__)
 app.config.from_object(Config)
-jwt1 = JWTManager(app)
+jwt = JWTManager(app)
 
+#Авторизация пользователя
 @app.route('/auth', methods=['POST'])
 def post_auth():
-    request_data =request.get_json()
-    loginemail = request_data['login_email']
-    
-    result = myquery.query_select('''
-    SELECT * FROM rest_user
-    WHERE (rest_user.name=%s OR rest_user.email=%s) AND rest_user.password=%s;
-    ''', (loginemail, loginemail, request_data['password'],), True)
-    if(result != False):
-        return gen_token(result['id'], 5), 201
-    else:
-        return jsonify({"msg":"Server error!"}), 500
-
-def gen_token(id, minut):
-    token = {"access_token" : create_access_token(identity=id, expires_delta=timedelta(minutes=minut))}
-    return jsonify(token)
-
+    try:
+        result = db_query.auth_query(request.get_json())
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500    
+#Добавление пользователя и проверка на сходства
 @app.route('/adduser', methods=['POST'])
 def get_add():
-    request_data = request.get_json()
-    proverka = myquery.query_proverka(''' 
-    SELECT * FROM rest_user
-    WHERE rest_user.name=%s OR rest_user.email=%s;
-    ''', (request_data['name'], request_data['email']))
-    if(proverka):
-        return jsonify({'msg':"User exist!"})
-    else:
-        result = myquery.query_insert('''
-        INSERT INTO rest_user (name, birthday, lastlogintime, insys, idrole, email, password) 
-        VALUES (%s, %s, %s, %s, %s, %s, %s)
-        RETURNING id;
-        ''', \
-            (request_data['name'], request_data['reg_date'],\
-                request_data['log_time'], request_data['in_sys'],\
-                    request_data['role_id'], request_data['email'], request_data['password']))
-        if(result != False):
-            return jsonify(result), 201
-        else:
-            return jsonify({"msg":"Server error!"}), 500
-
+    try:
+        result = db_query.add_query(request.get_json())
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500
+#Запрос на получение данных об одном пользователе
 @app.route('/user/<int:id>', methods=['GET'])
 def get_user(id):
-    return jsonify(myquery.query_select('''
-    SELECT * FROM rest_user WHERE id = %s;
-    ''', (id,), True)), 200
-
+    try:
+        result = db_query.get_user_query(id)
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500
+#Запрос на получение данных всех пользователей
 @app.route('/users', methods=['GET'])
-#@jwt_required()
 def get_show_user():
-    result = myquery.query_select('''
-    SELECT rest_user.id, rest_user.name, rest_user.birthday, rest_user.insys, rest_role.name AS role_name, rest_user.lastlogintime, rest_user.email, rest_user.password
-    FROM rest_user, rest_role
-    WHERE rest_user.idrole = rest_role.id
-    ORDER BY id ASC;
-    ''', (), False)
-    if(result != False):
-        return jsonify(result), 200
-    else:
-        return jsonify({"msg":"Server error!"}), 500
-
+    try:
+        result = db_query.get_all_user_query()
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500
+#Удаление пользователя
 @app.route('/deleteuser', methods=['POST'])
 def delete_user():
-    request_data = request.get_json()
-    result = myquery.query_delete('''
-    DELETE FROM rest_user
-    WHERE id = %s;
-    ''', (request_data['id'],))
-    if(result):
-        return jsonify({"msg":"Success delete!"}), 200
-    else:
-        return jsonify({"msg":"Server error!"}), 500
-
+    try:
+        result = db_query.delete_user_query(request.get_json())
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500
+#Обновление данных пользователя
 @app.route('/updateuser', methods=['POST'])
 @jwt_required()
 def test_api():
     try:
-        request_data = request.get_json()
-        result = myquery.query_update(f'''
-        UPDATE rest_user
-        SET name = %s
-        WHERE id = %s;
-        ''', (request_data['name'], get_jwt_identity()))
-        if(result):
-            return jsonify({"msg":"Success update!"}), 200
-        else:
-            return jsonify({"msg":"User not found!"}), 400
-    except:
-        return jsonify({"msg":"Server error!"}), 500
-
-
+        result = db_query.update_user_query(request.get_json(), get_jwt_identity())
+        return result
+    except Exception as ex:
+        return jsonify({"msg":str(ex)}), 500
+#Отправка сообщения через XMPP
 @app.route('/testmessage', methods=['POST'])
 def send_mess():
     try:

+ 0 - 1
config.py

@@ -3,7 +3,6 @@ host = "localhost"
 user = "postgres"
 password = "password"
 db_name = "postgres"
-port = 3306
 SSH_H = "46.138.247.90"
 
 class Config:

+ 13 - 6
function.py

@@ -1,7 +1,10 @@
 from connect import connect
+from flask import jsonify
+from flask_jwt_extended import create_access_token
+from datetime import timedelta
 
 conn = connect()
-class MyQueryClass:
+class RestFunc:
     def query_select(self, query, args=(), one=False):
         try:
             with conn.cursor() as cursor:
@@ -9,8 +12,8 @@ class MyQueryClass:
                 r = [dict((cursor.description[i][0], value) \
                         for i, value in enumerate(row)) for row in cursor.fetchall()]
                 return (r[0] if r else None) if one else r
-        except:
-            return False
+        except Exception as ex:
+            return jsonify({"msg":str(ex)})
 
     def query_insert(self, query, args=()):
         try:
@@ -18,8 +21,8 @@ class MyQueryClass:
                 cursor.execute(query, args)
                 conn.commit()
                 return cursor.fetchone()[0]
-        except: 
-            return False
+        except Exception as ex:
+            return jsonify({"msg":str(ex)})
 
     def query_delete(self, query, args=()):
         try:
@@ -51,4 +54,8 @@ class MyQueryClass:
                     return True
             return False
         except: 
-            return False
+            return False
+
+    def gen_token(self, id, minut):
+        token = {"access_token" : create_access_token(identity=id, expires_delta=timedelta(minutes=minut))}
+        return jsonify(token)