from flask import jsonify, request from flask_jwt_extended import jwt_required, get_jwt_identity from . import api_bp from ..models import User from ..schemas import UserSchema, UserUpdateSchema from ..services import UserService user_schema = UserSchema() user_update_schema = UserUpdateSchema() @api_bp.route("/users/me", methods=["GET"]) @jwt_required() def get_current_user(): user_id = get_jwt_identity() user = User.query.get(user_id) if not user: return jsonify({"error": "用户不存在"}), 404 return jsonify(user_schema.dump(user)) @api_bp.route("/users/me", methods=["PUT"]) @jwt_required() def update_current_user(): user_id = get_jwt_identity() user = User.query.get(user_id) if not user: return jsonify({"error": "用户不存在"}), 404 data = request.get_json() errors = user_update_schema.validate(data) if errors: return jsonify({"error": errors}), 400 try: updated_user = UserService.update_user(user, data) return jsonify(user_schema.dump(updated_user)) except ValueError as e: return jsonify({"error": str(e)}), 400