from flask import Blueprint, request, jsonify from flask_jwt_extended import jwt_required, get_jwt_identity from models import Script from database import db scripts_bp = Blueprint('scripts', __name__) @scripts_bp.route('', methods=['GET']) @jwt_required() def get_scripts(): scripts = Script.query.all() result = [] for script in scripts: result.append({ 'id': script.id, 'name': script.name, 'type': script.type, 'content': script.content, 'description': script.description, 'createdBy': script.created_by, 'createdAt': script.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'updatedAt': script.updated_at.strftime('%Y-%m-%d %H:%M:%S') }) return jsonify(result) @scripts_bp.route('', methods=['POST']) @jwt_required() def create_script(): user_id = get_jwt_identity() data = request.get_json() script = Script( name=data['name'], type=data['type'], content=data['content'], description=data.get('description', ''), created_by=user_id ) db.session.add(script) db.session.commit() return jsonify({'message': '脚本创建成功', 'id': script.id}), 201 @scripts_bp.route('/', methods=['GET']) @jwt_required() def get_script(script_id): script = Script.query.get_or_404(script_id) return jsonify({ 'id': script.id, 'name': script.name, 'type': script.type, 'content': script.content, 'description': script.description, 'createdBy': script.created_by, 'createdAt': script.created_at.strftime('%Y-%m-%d %H:%M:%S'), 'updatedAt': script.updated_at.strftime('%Y-%m-%d %H:%M:%S') }) @scripts_bp.route('/', methods=['PUT']) @jwt_required() def update_script(script_id): script = Script.query.get_or_404(script_id) data = request.get_json() script.name = data.get('name', script.name) script.type = data.get('type', script.type) script.content = data.get('content', script.content) script.description = data.get('description', script.description) db.session.commit() return jsonify({'message': '脚本更新成功'}) @scripts_bp.route('/', methods=['DELETE']) @jwt_required() def delete_script(script_id): script = Script.query.get_or_404(script_id) db.session.delete(script) db.session.commit() return jsonify({'message': '脚本删除成功'})