Files

79 lines
2.4 KiB
Python

"""
用户管理路由
"""
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('/<int:user_id>', methods=['GET'])
def get_user(user_id):
"""获取单个用户"""
user = User.query.get_or_404(user_id)
return jsonify(user.to_dict())
@user_bp.route('/<int:user_id>', 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('/<int:user_id>', 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