""" 用户管理路由 """ from flask import Blueprint, request, jsonify from models.database import db, User user_bp = Blueprint('users', __name__) @user_bp.route('/', methods=['GET']) def get_users(): """获取所有用户""" users = User.query.all() return jsonify([user.to_dict() for user in users]) @user_bp.route('/', methods=['POST']) def create_user(): """创建用户""" data = request.json user = User( name=data.get('name'), iyuu_token=data.get('iyuu_token'), max_fail_count=data.get('max_fail_count', 3), cookie_cloud_uuid=data.get('cookie_cloud_uuid'), cookie_cloud_password=data.get('cookie_cloud_password'), cookie_cloud_api_url=data.get('cookie_cloud_api_url') ) db.session.add(user) db.session.commit() return jsonify(user.to_dict()), 201 @user_bp.route('/', methods=['GET']) def get_user(user_id): """获取单个用户""" user = User.query.get_or_404(user_id) return jsonify(user.to_dict()) @user_bp.route('/', methods=['PUT']) def update_user(user_id): """更新用户""" user = User.query.get_or_404(user_id) data = request.json user.name = data.get('name', user.name) user.iyuu_token = data.get('iyuu_token', user.iyuu_token) user.max_fail_count = data.get('max_fail_count', user.max_fail_count) user.cookie_cloud_uuid = data.get('cookie_cloud_uuid', user.cookie_cloud_uuid) user.cookie_cloud_password = data.get('cookie_cloud_password', user.cookie_cloud_password) user.cookie_cloud_api_url = data.get('cookie_cloud_api_url', user.cookie_cloud_api_url) db.session.commit() return jsonify(user.to_dict()) @user_bp.route('/', methods=['DELETE']) def delete_user(user_id): """删除用户""" user = User.query.get_or_404(user_id) db.session.delete(user) db.session.commit() return jsonify({'message': '用户已删除'}) def user_to_dict(self): return { 'id': self.id, 'name': self.name, 'iyuu_token': self.iyuu_token, 'max_fail_count': self.max_fail_count, 'cookie_cloud_uuid': self.cookie_cloud_uuid, 'cookie_cloud_password': self.cookie_cloud_password, 'cookie_cloud_api_url': self.cookie_cloud_api_url, 'created_at': self.created_at.isoformat() if self.created_at else None, 'updated_at': self.updated_at.isoformat() if self.updated_at else None } User.to_dict = user_to_dict