82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
![]() |
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/<int:userId>')
|
||
|
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/<int:userId>', 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/<int:userId>', 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
|