def sign_out(): """Sign out Signs out currently logged in user """ hashed_token = request.headers.get('token') data = request.get_json() email = data['email'] token = database_helper.get_token_from_email(email) url = '/sign_out' server_hash = sha256((token[0] + email + url).encode('utf-8')).hexdigest() print('SIGNOUT: server_hash is:', server_hash, ' and hashed_token is: ', hashed_token) print('signing out token: ', token[0]) user = database_helper.get_email_from_token(token[0]) result = database_helper.logout_user(token[0]) if (result == True) and server_hash == hashed_token: print('sockets before sign out ', sockets) print('user[0] before sign out ', user[0]) print('sockets[user[0]] before sign out ', sockets[user[0]]) print('deleting: ', sockets[user[0]]) del sockets[user[0]] push_websocket_active_users() res = jsonify({'success': True, 'message': 'Signed out!'}) return res else: res = jsonify({'success': False, 'message': 'Something went wrong!'}) return res
def post_message(): user = request.get_json() sender_token = user['token'] receiver_email = user['email'] message = user['message'] sender_email = database_helper.get_email_from_token(sender_token) logged_in = database_helper.get_email_from_token(sender_token) if logged_in: user_exist = database_helper.get_email_from_email(receiver_email) if user_exist: database_helper.post_msg(sender_email, receiver_email, message) return {"success": True, "message": "Message posted"}, 200 else: return {"success": False, "message": "User doesn't exist."}, 404 else: return {"success": False, "message": "You are not signed in."}, 404
def change_password(): token = request.form["token"] old_password = request.form["old_password"] new_password = request.form["new_password"] # Check if online if database_helper.is_user_online(token) != True: return jsonify(success=False, message="You are not logged in") # get email from token email = database_helper.get_email_from_token(token) if email is None: return jsonify(success=False, message="Can't find email matching token") # get and compare current password password = database_helper.get_password(email[0]) if password is None: return jsonify(success=False, message="Can't find password matching email") if password[0] != old_password: return jsonify(success=False, message="Wrong password entered") # set new password database_helper.set_password(email[0], new_password) return jsonify(success=True, message="Password successfully updated")
def get_user_data_by_email(): #user = request.get_json() #token = user['token'] #email = user['email'] token = request.headers["Authorization"] email = request.headers["email"] logged_in = database_helper.get_email_from_token(token) if logged_in: user_details = database_helper.get_user_data_by_email_helper(email) if not user_details: return {"success": False, "message": "No data found."}, 200 else: return { "success": True, "message": "User messages retrieved.", "data": { 'email': user_details[0], 'firstname': user_details[1], 'familyname': user_details[2], 'gender': user_details[3], 'city': user_details[4], 'country': user_details[5] } }, 200 else: return {"success": False, "message": "You are not signed in."}, 404
def websocket(): if request.environ.get('wsgi.websocket'): ws = request.environ['wsgi.websocket'] # TODO: WebSockets should send in json format # id, data etc while True: msg = ws.receive() message = json.loads(msg) if message["id"] == "email": if message["email"] in socket_list: socket_list[message["email"]].send(json.dumps(dict(id = "sign_out"))) socket_list[message["email"]] = ws elif message["id"] == "update_chart": token = message["token"] email = database_helper.get_email_from_token(token) # get user statistics sent_ = database_helper.get_num_messages_sent(email[0]) received_ = database_helper.get_num_messages_received(email[0]) online_ = database_helper.get_num_users_online() ws.send(json.dumps(dict(id = "update_chart", sent = sent_, received = received_, online = online_)))
def sign_out(): token = request.headers["Authorization"] if database_helper.get_email_from_token(token): database_helper.sign_out(token) return {"success": True, "message": "Successfully signed out."}, 200 else: return {"success": False, "message": "You are not signed in."}, 404
def change_password(): token = request.form["token"] old_password = request.form["old_password"] new_password = request.form["new_password"] # Check if online if database_helper.is_user_online(token) != True: return jsonify(success = False, message = "You are not logged in") # get email from token email = database_helper.get_email_from_token(token) if email is None: return jsonify(success = False, message = "Can't find email matching token") # get and compare current password password = database_helper.get_password(email[0]) if password is None: return jsonify(success = False, message = "Can't find password matching email") if password[0] != old_password: return jsonify(success = False, message = "Wrong password entered") # set new password database_helper.set_password(email[0], new_password) return jsonify(success = True, message = "Password successfully updated")
def get_user_messages_by_token(): token = request.form["token"] email = database_helper.get_email_from_token(token) if email is None: return jsonify(success = False, message = "Can't find email matching token") messages = database_helper.get_user_messages(email[0]) return jsonify(success = True, message = "User messages successfully returned", data = messages)
def Get_user_messages_by_token(): token = request.headers.get('token') if token and database_helper.check_token(token): email = database_helper.get_email_from_token(token) result = database_helper.get_user_messages_by_email(email) if result: return json.dumps({"success": "true", "message": "User messages retrieved.", "data": result}), 200 else: return json.dumps({"success": "false", "message": "Something went wrong!"}), 500 else: return json.dumps({"success": "false", "message": "Something went wrong!"}), 400
def post_message(): data = request.get_json() token = request.headers.get('token') if token and 'content' in data and 'email' not in data and database_helper.check_token(token): email = database_helper.get_email_from_token(token) writer = email result = database_helper.post_message(email, writer, data['content']) if result == True: return json.dumps({"success": "true", "message": "Message posted"}), 200 else: return json.dumps({"success": "false", "message": "Something went wrong!"}), 500 elif token and 'email' in data and 'content' in data and database_helper.check_token(token): writer = database_helper.get_email_from_token(token) result = database_helper.post_message(data['email'], writer, data['content']) if result == True: return json.dumps({"success": "true", "message": "Message posted"}), 200 else: return json.dumps({"success": "false", "message": "Something went wrong!"}), 500 else: return json.dumps({"success": "false", "message": "Missing field"}), 400
def post_message(): token = request.form['token'] # from message = request.form['message'] email = request.form['email'] # to # TODO: check if token is valid!!! sender = database_helper.get_email_from_token(token) database_helper.add_message(sender[0], email, message) # TODO: ERROR CHECK!! return jsonify(success = True, message = "Message successfully posted")
def post_message(): token = request.form['token'] # from message = request.form['message'] email = request.form['email'] # to # Check if online if database_helper.is_user_online(token) != True: return jsonify(success=False, message="You are not logged in") sender = database_helper.get_email_from_token(token) database_helper.add_message(sender[0], email, message) return jsonify(success=True, message="Message successfully posted")
def post_message(): token = request.form['token'] # from message = request.form['message'] email = request.form['email'] # to # Check if online if database_helper.is_user_online(token) != True: return jsonify(success = False, message = "You are not logged in") sender = database_helper.get_email_from_token(token) database_helper.add_message(sender[0], email, message) return jsonify(success = True, message = "Message successfully posted")
def change_psw(): user = request.get_json() token = user['token'] old_psw = user['old_psw'] new_psw = user['new_psw'] stored_old_password = database_helper.get_password_from_token(token) if stored_old_password == old_psw: email = database_helper.get_email_from_token(token) database_helper.change_psw(email, new_psw) return {"success": True, "message": "Password updated"}, 200 else: return {"success": False, "message": "Wrong password"}, 404
def Change_password(): data = request.get_json() token=request.headers.get('token') if token and 'oldPassword' in data and 'newPassword' in data and database_helper.check_token(token): email = database_helper.get_email_from_token(token) old_password = database_helper.get_old_password(email) if data['oldPassword'] == old_password and 5 <= len(data['newPassword']) <= 30 and data['newPassword']==data['repeatPassword']: result = database_helper.Change_password(token, data['newPassword']) if result == True: return json.dumps({"success": "true", "message": "Password changed!"}), 200 else: return json.dumps({"success": "false", "message": "Something wxent wrong!"}), 500 else: return json.dumps({"success": "false", "message": "Check again your password!"}), 400 else: return json.dumps({"success": "false", "message": "Missing field!"}), 400
def get_user_messages_by_token(): token = request.headers["Authorization"] #user = request.get_json() #token = user['token'] email = database_helper.get_email_from_token(token) if not email: return {"success": False, "message": "You are not signed in."}, 404 else: user_messages = database_helper.get_messages_by_email_helper(email) if not user_messages: return {"success": False, "message": "No messages found."}, 404 else: return { "success": True, "message": "User messages retrieved.", "data": user_messages }, 200
def check_websocket(): if request.environ.get('wsgi.websocket'): web_socket = request.environ['wsgi.websocket'] message = json.loads(web_socket.receive()) ##I want to check this message email = database_helper.get_email_from_token(message['token']) ##GET THE EMAIL SOMEHOW logged_in_users[email] = web_socket print("WSGI FOUND") while True: message = web_socket.receive() if message is not None: message = {'message': 'Successfully logged in'} web_socket.send(json.dumps(message)) print("message received") try: del logged_in_users[email] except: pass return 'None'
def get_user_data_by_token(): token = request.form["token"] email = database_helper.get_email_from_token(token) if email is None: return jsonify(success = False, message = "Can't find email matching token") user = database_helper.get_user(email[0]) if user is None: return jsonify(success = False, message = "Can't find user data") u = {} u['email'] = user[0] u['firstname'] = user[1] u['familyname'] = user[2] u['country'] = user[3] u['city'] = user[4] u['gender'] = user[5] return jsonify(success = True, message = "User data successfully returned", data = u)
def get_user_data_by_token(): token = request.headers["Authorization"] if token is not None: email = database_helper.get_email_from_token(token) if not email: return {"success": False, "message": "You are not signed in."} else: user_details = database_helper.get_user_data_by_email_helper(email) if not user_details: return {"success": False, "message": "No data found."} else: return { "success": True, "message": "User messages retrieved.", "data": { 'email': user_details[0], 'firstname': user_details[1], 'familyname': user_details[2], 'gender': user_details[3], 'city': user_details[4], 'country': user_details[5] } }