feat: add profile endpoint to view user details

This commit is contained in:
2026-02-23 22:43:55 +00:00
parent 3165bf1aa9
commit be6ab1f929
2 changed files with 18 additions and 2 deletions

View File

@@ -79,13 +79,24 @@ def login_user():
try: try:
user = auth_manager.authenticate_user(username, password) user = auth_manager.authenticate_user(username, password)
if user: if user:
access_token = create_access_token(identity=user['id']) access_token = create_access_token(identity=str(user['id']))
return jsonify({"access_token": access_token}), 200 return jsonify({"access_token": access_token}), 200
else: else:
return jsonify({"error": "Invalid username or password"}), 401 return jsonify({"error": "Invalid username or password"}), 401
except Exception as e: except Exception as e:
print(traceback.format_exc()) print(traceback.format_exc())
return jsonify({"error": f"An unexpected error occurred: {str(e)}"}), 500 return jsonify({"error": f"An unexpected error occurred: {str(e)}"}), 500
@app.route("/profile", methods=["GET"])
@jwt_required()
def profile():
current_user = get_jwt_identity()
return jsonify(
message="Access granted",
user=auth_manager.get_user_by_id(current_user)
), 200
@app.route('/upload', methods=['POST']) @app.route('/upload', methods=['POST'])
def upload_data(): def upload_data():

View File

@@ -21,4 +21,9 @@ class AuthManager:
user = self.db.get_user_by_username(username) user = self.db.get_user_by_username(username)
if user and self.bcrypt.check_password_hash(user['password_hash'], password): if user and self.bcrypt.check_password_hash(user['password_hash'], password):
return user return user
return None return None
def get_user_by_id(self, user_id):
query = "SELECT id, username, email FROM users WHERE id = %s"
result = self.db.execute(query, (user_id,), fetch=True)
return result[0] if result else None