from flask import Blueprint, jsonify, request from ..models import User from .. import db user_routes = Blueprint('user', __name__) def add_user(name, password, role, email): """添加新用户""" existing_user = User.query.filter_by(email=email).first() if existing_user: raise ValueError("User already exists") # 创建新用户 new_user = User(name=name, password=password, role=role, email=email) db.session.add(new_user) db.session.commit() return new_user @user_routes.route('/get-user/') def get_user(userId): """获取单个用户""" user = User.query.get(userId) if user: return jsonify(user.to_dict()) else: return jsonify({'error': 'User not found'}), 404 @user_routes.route('/add-user', methods=['POST']) def add_user_route(): """添加新用户""" data = request.get_json() if not data or not all(key in data for key in ['name', 'email', 'password', 'role']): return jsonify({'error': 'Invalid input'}), 400 try: new_user = add_user( name=data['name'], password=data['password'], role=data['role'], email=data.get('email') ) return jsonify({'message': 'User added successfully', 'user': new_user.to_dict()}), 201 except ValueError as e: return jsonify({'error': str(e)}), 400 @user_routes.route('/delete-user/', methods=['DELETE']) def delete_user(userId): """删除用户""" user = User.query.get(userId) if user: db.session.delete(user) db.session.commit() return jsonify({'message': 'User deleted successfully'}) else: return jsonify({'error': 'User not found'}), 404 @user_routes.route('/update-user/', methods=['PUT']) def update_user(userId): """更新用户信息""" user = User.query.get(userId) if not user: return jsonify({'error': 'User not found'}), 404 data = request.get_json() if not data: return jsonify({'error': 'Invalid input'}), 400 # 更新用户信息 user.name = data.get('name', user.name) user.password = data.get('password', user.password) user.role = data.get('role', user.role) user.email = data.get('email', user.email) db.session.commit() return jsonify({'message': 'User updated successfully', 'user': user.to_dict()}), 200