|
@@ -4,72 +4,91 @@ from flask_jwt_extended import JWTManager, jwt_required, get_jwt_identity, creat
|
|
|
from datetime import timedelta
|
|
|
|
|
|
from config import Config
|
|
|
-from MyQuery import MyQuery
|
|
|
+from SharixQuery import SharixQuery
|
|
|
#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
|
|
|
-db_query = MyQuery()
|
|
|
+
|
|
|
+#Инициализация класс для запросов к базе данны
|
|
|
+db_query = SharixQuery()
|
|
|
+#Инициализация Flask
|
|
|
app = Flask(__name__)
|
|
|
+#Добавление секртного слова для шифрования JWT
|
|
|
app.config.from_object(Config)
|
|
|
+#Инициализация класса шифрования
|
|
|
jwt = JWTManager(app)
|
|
|
|
|
|
-#Генерация токена
|
|
|
-def gen_token(id, minut):
|
|
|
- token = {"access_token" : create_access_token(identity=id, expires_delta=timedelta(minutes=minut))}
|
|
|
+#Переменные чтобы не ошибиться
|
|
|
+data = 'data'
|
|
|
+code = 'httpcode'
|
|
|
+
|
|
|
+#Генерация токена (id - данные которые шифруются, min - время действия токена)
|
|
|
+#Используются при авторизации или регистрации (возможно выдавать и при других обстоятельствах)
|
|
|
+def gen_token(id, min):
|
|
|
+ token = {"access_token" : create_access_token(identity=id, expires_delta=timedelta(minutes=min))}
|
|
|
return jsonify(token)
|
|
|
+#Ошибка сервера (возвращает ошибку и код ошибки)
|
|
|
+def err_mes(ex):
|
|
|
+ return jsonify({"msg":str(ex)}), 500
|
|
|
|
|
|
#Авторизация пользователя
|
|
|
@app.route('/auth', methods=['POST'])
|
|
|
def post_auth():
|
|
|
try:
|
|
|
result = db_query.auth_query(request.get_json())
|
|
|
- return gen_token(result['id'], 5), 200
|
|
|
+ return gen_token(result[data]['id'], 5), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ return err_mes(ex)
|
|
|
+
|
|
|
#Добавление пользователя и проверка на сходства
|
|
|
@app.route('/adduser', methods=['POST'])
|
|
|
def get_add():
|
|
|
try:
|
|
|
result = db_query.add_query(request.get_json())
|
|
|
- return jsonify(result[0]), result[1]
|
|
|
+ return jsonify(result[data]), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ err_mes(ex)
|
|
|
+
|
|
|
#Запрос на получение данных об одном пользователе
|
|
|
@app.route('/user/<int:id>', methods=['GET'])
|
|
|
def get_user(id):
|
|
|
try:
|
|
|
result = db_query.get_user_query(id)
|
|
|
- return jsonify(result[0]), result[1]
|
|
|
+ return jsonify(result[data]), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ return err_mes(ex)
|
|
|
+
|
|
|
#Запрос на получение данных всех пользователей
|
|
|
@app.route('/users', methods=['GET'])
|
|
|
def get_show_user():
|
|
|
try:
|
|
|
result = db_query.get_all_user_query()
|
|
|
- return jsonify(result[0]), result[1]
|
|
|
+ return jsonify(result[data]), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ return err_mes(ex)
|
|
|
+
|
|
|
#Удаление пользователя
|
|
|
@app.route('/deleteuser', methods=['POST'])
|
|
|
def delete_user():
|
|
|
try:
|
|
|
result = db_query.delete_user_query(request.get_json())
|
|
|
- return jsonify(result[0]), result[1]
|
|
|
+ return jsonify(result[data]), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ return err_mes(ex)
|
|
|
+
|
|
|
#Обновление данных пользователя
|
|
|
@app.route('/updateuser', methods=['POST'])
|
|
|
@jwt_required()
|
|
|
def test_api():
|
|
|
try:
|
|
|
result = db_query.update_user_query(request.get_json(), get_jwt_identity())
|
|
|
- return jsonify(result[0]), result[1]
|
|
|
+ return jsonify(result[data]), result[code]
|
|
|
except Exception as ex:
|
|
|
- return jsonify({"msg":str(ex)}), 500
|
|
|
+ return err_mes(ex)
|
|
|
+
|
|
|
#Отправка сообщения через XMPP
|
|
|
@app.route('/testmessage', methods=['POST'])
|
|
|
def send_mess():
|
|
@@ -78,8 +97,8 @@ def send_mess():
|
|
|
for to in request_data['to']:
|
|
|
cli.send_message(request_data['from'], request_data['password'], to, request_data['message'])
|
|
|
return jsonify({"msg":"Succes send!"}), 200
|
|
|
- except:
|
|
|
- return jsonify({"msg":"Server error!"}), 500
|
|
|
+ except Exception as ex:
|
|
|
+ return err_mes(ex)
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|