def get(self, username): if username == session.get("username", None): user = UserModel.fetch_using_username(username) user_schema = UserSchema() return user_schema.dump(user).data else: return jsonify({"message": "User not logged in."})
def post(self): json_data = request.get_json() user_schema = UserSchema() try: data = user_schema.load(json_data).data except ValidationError as err: return jsonify({"message": err.messages}) hashed = hashpw(data.password.encode("utf-8"), gensalt()) user = UserModel.fetch_using_username(data.username) if user is None: user = UserModel.fetch_using_email(data.email) if user is None: try: data.password = hashed data.save_to_db() except: return { "message": "An error occurred while registering." }, 500 session.clear() return jsonify({"message": "User successfully registered."}) else: return { "message": "A user with the same email already exists." }, 500 else: return { "message": "A user with the same username already exists." }, 500
def put(self, username): if username == session.get("username", None): user = UserModel.fetch_using_username(username) json_data = request.get_json() user_schema = UserSchema() try: data = user_schema.load(json_data, partial=True).data except ValidationError as err: return jsonify("message", err.messages) user.email = data.email user.password = data.password user.first_name = data.first_name user.last_name = data.last_name try: user.save_to_db() except: return { "message": "An error occurred while updating details.." }, 500 return jsonify({"message": "User details updated."}) else: return jsonify({"message": "User not logged in."})
def delete(self, username): if username == session.get("username", None): user = UserModel.fetch_using_username(username) if user: try: user.delete_from_db() except: return jsonify( {"message": "An error occurred while deleting."}), 500 session.clear() return jsonify({"message": "User successfully deleted."}) else: return jsonify({"message": "User doesn't exist."}) else: return jsonify({"message": "User not logged in."})
def post(self): username = session.get("username", None) if username: return jsonify({"message": "User is already logged in."}) else: json_data = request.get_json() user_schema = UserSchema() try: data = user_schema.load(json_data, partial=True).data except ValidationError as err: return jsonify("message", err.messages) user = UserModel.fetch_using_username(data.username) if user: if checkpw(data.password.encode("utf-8"), user.password): session["username"] = user.username return jsonify({"message": "User successfully logged in."}) else: return jsonify({"message": "The username or password entered is incorrect."}) else: return jsonify({"message": "The username or password entered is incorrect."}), 500