79 lines
2.4 KiB
Python
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
|