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."})
Esempio n. 2
0
    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."})
Esempio n. 5
0
    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