diff --git a/Lab2/__pycache__/database_helper.cpython-310.pyc b/Lab2/__pycache__/database_helper.cpython-310.pyc index 2521f7a2f640d7d312631b2237ca65301146cc25..c0cb2b59bf7e62a54d13752438c29730b94473b0 100644 Binary files a/Lab2/__pycache__/database_helper.cpython-310.pyc and b/Lab2/__pycache__/database_helper.cpython-310.pyc differ diff --git a/Lab2/__pycache__/server.cpython-310.pyc b/Lab2/__pycache__/server.cpython-310.pyc index b5132ee498d8e00d6aa1e48821d75a3350b8b256..3af99e8a6819cb2af0635cb1cace0ebe952112d3 100644 Binary files a/Lab2/__pycache__/server.cpython-310.pyc and b/Lab2/__pycache__/server.cpython-310.pyc differ diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py index a14e796cb258278b33ca566cacc9c69e303de055..f69e47ba0138f2407b2e9803b2dd16f837424463 100644 --- a/Lab2/database_helper.py +++ b/Lab2/database_helper.py @@ -105,14 +105,29 @@ def get_data_email(email): cursor.execute("SELECT * FROM USERS WHERE EMAIL=?;", [email]) result = cursor.fetchone() if result: - data = [] - for r in result: - data.append(r) - return data + return result + else: + return None + except: return None + + +def get_messages_email(email): + try: + cursor = get_db().cursor() + cursor.execute("SELECT MESSAGE, EMAIL_SENDER FROM MESSAGES WHERE EMAIL_RECIPIENT=?;", [email]) + result = cursor.fetchall() + return result except: return None +def check_user_exists(email): + cursor = get_db().cursor() + cursor.execute("SELECT EMAIL FROM USERS WHERE EMAIL=?", [email]) + email = cursor.fetchone() + if email: + return True + return False def change_password(email, newpassword): try: diff --git a/Lab2/server.py b/Lab2/server.py index 471f7d0589a41139443e0f9e6e863652def808be..d78f75438195f5adf5cb756cc3523554428bb73c 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -3,6 +3,7 @@ from flask import Flask, request, jsonify import database_helper import random import string +import json app = Flask(__name__) @@ -95,7 +96,7 @@ def change_password(): else: return "", 401 else: - return "", 406 + return "", 405 else: return "", 400 @@ -128,6 +129,41 @@ def get_user_data_email(token, email): else: return "", 401 + +@app.route("/account/get/message/<token>", methods = ['GET']) +def get_user_message_token(token): + email = database_helper.tokenToEmail(token) + if email: + return get_user_message_email(token, email) + else: + return "", 401 + + +@app.route("/account/get/message/<token>/<email>", methods = ['GET']) +def get_user_message_email(token, email): + if database_helper.is_online(token): + data = database_helper.get_messages_email(email) + #this user has message(s) + if(data and database_helper.check_user_exists(email)): + values = {} + r_value = [] + for d in data: + values = { + "message": d[0], + "writer": d[1] + } + r_value.append(values) + return jsonify(r_value), 200 + #this user has no messages + elif (not data and database_helper.check_user_exists(email)): + return "", 204 + #this user does not exist + else: + return "", 404 + else: + return "", 401 + + @app.route("/account/post_message", methods = ['POST']) def post_message(): data = request.get_json() @@ -154,6 +190,7 @@ def generate_token(): characters = string.ascii_letters + string.digits return ''.join(random.choices(characters, k=36)) + if __name__ == '__main__': app.debug = True app.run()