cloudPlat/backend/routes/scripts.py

85 lines
2.5 KiB
Python
Raw Normal View History

2025-07-09 22:44:18 +08:00
from flask import Blueprint, request, jsonify
from flask_jwt_extended import jwt_required, get_jwt_identity
from models import Script
from app 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('/<int:script_id>', 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('/<int:script_id>', 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('/<int:script_id>', 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': '脚本删除成功'})