diff --git a/database_helper.py b/database_helper.py new file mode 100644 index 0000000000000000000000000000000000000000..588b37b01b8305418bb6e6a74220e725a87779e8 --- /dev/null +++ b/database_helper.py @@ -0,0 +1,158 @@ +import sqlite3 +from flask import g +from sqlite3 import Error + +DATABASE = "database.db" + + +def connect_database(): + conn = None + try: + conn = sqlite3.connect(DATABASE) + except Error as e: + print(e) + return conn + + +def query_db(query): + try: + db = getattr(g, "_database", None) + if db is None: + db = connect_database() + cur = db.execute(query) + rows = cur.fetchall() + db.commit() + db.close() + return { + "status": True, + "data": rows, + } + except Error as e: + print(e) + return {"status": False, "data": str(e)} + + +def user_exists_email(email): + query_str = "SELECT * FROM User WHERE email = '" + email + "'" + result = query_db(query_str) + + if len(result["data"]) == 0: + return False + else: + return True + + +def find_user_by_email(email): + query_str = "SELECT * FROM User WHERE email = '" + email + "'" + return query_db(query_str) + + +def create_user(email, password, firstname, familyname, gender, city, country): + query_str = ( + "INSERT INTO User (email, password, firstname, familyname, gender, city, country) VALUES(" + + "'" + + email + + "','" + + password + + "','" + + firstname + + "','" + + familyname + + "','" + + gender + + "','" + + city + + "','" + + country + + "')" + ) + + return query_db(query_str) + + +def find_user_by_email_password(email, password): + query_str = ( + "SELECT * FROM User WHERE email= " + + "'" + + email + + "' AND password= '" + + password + + "'" + ) + return query_db(query_str) + + +def add_user_email_token(email, token): + token = str(token) + query_str = ( + "INSERT INTO LoggedIn (email, token) VALUES(" + + "'" + + email + + "','" + + token + + "')" + ) + return query_db(query_str) + + +def remove_token(token): + query_str = "DELETE FROM LoggedIn WHERE token = " + "'" + token + "'" + return query_db(query_str) + +def remove_logged_in_session(email): + query_str = "DELETE FROM LoggedIn WHERE email = " + "'" + email + "'" + return query_db(query_str) + +def find_token(token): + query_str = "SELECT * FROM LoggedIn WHERE token = " + "'" + token + "'" + return query_db(query_str) + +def find_token_by_email(email): + query_str = "SELECT * FROM LoggedIn WHERE email = " + "'" + email + "'" + return query_db(query_str) + + +def token_exist(token): + query_str = "SELECT * FROM LoggedIn WHERE token = " + "'" + token + "'" + result = query_db(query_str) + + if len(result["data"]) == 0: + return False + else: + return True + + +def change_password(email, newPassword): + newPassword = str(newPassword) + query_str = ( + "UPDATE User SET password = " + + "'" + + newPassword + + "'" + + " WHERE email = " + + "'" + + email + + "'" + ) + + return query_db(query_str) + + +def get_message_from_email(email): + query_str = "SELECT * FROM Messages WHERE email = " + "'" + email + "' OR recipient= '" + email + "'" + return query_db(query_str) + + +def add_message_and_email(email, message, recipient): + # curr_user_email, message, recipient_email + query_str = ( + "INSERT INTO Messages (email, content, recipient) VALUES(" + + "'" + + email + + "','" + + message + + "','" + + recipient + + "')" + ) + return query_db(query_str)