first commit
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
from flask import jsonify, request
|
||||
from flask_jwt_extended import jwt_required
|
||||
from . import api_bp
|
||||
from ..models import CronJob
|
||||
from ..schemas import CronJobSchema, CronJobCreateSchema, CronJobUpdateSchema
|
||||
from ..services import CronJobService
|
||||
|
||||
|
||||
cron_job_schema = CronJobSchema()
|
||||
cron_job_create_schema = CronJobCreateSchema()
|
||||
cron_job_update_schema = CronJobUpdateSchema()
|
||||
|
||||
|
||||
@api_bp.route("/agents/<int:agent_id>/cron-jobs", methods=["GET"])
|
||||
@jwt_required()
|
||||
def get_cron_jobs(agent_id):
|
||||
cron_jobs = CronJob.query.filter_by(agent_id=agent_id).all()
|
||||
return jsonify(cron_job_schema.dump(cron_jobs, many=True))
|
||||
|
||||
|
||||
@api_bp.route("/agents/<int:agent_id>/cron-jobs", methods=["POST"])
|
||||
@jwt_required()
|
||||
def create_cron_job(agent_id):
|
||||
data = request.get_json()
|
||||
errors = cron_job_create_schema.validate(data)
|
||||
if errors:
|
||||
return jsonify({"error": errors}), 400
|
||||
|
||||
try:
|
||||
cron_job = CronJobService.create_cron_job(agent_id, data)
|
||||
return jsonify(cron_job_schema.dump(cron_job)), 201
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/cron-jobs/<int:cron_job_id>", methods=["GET"])
|
||||
@jwt_required()
|
||||
def get_cron_job(cron_job_id):
|
||||
cron_job = CronJob.query.get(cron_job_id)
|
||||
if not cron_job:
|
||||
return jsonify({"error": "定时任务不存在"}), 404
|
||||
return jsonify(cron_job_schema.dump(cron_job))
|
||||
|
||||
|
||||
@api_bp.route("/cron-jobs/<int:cron_job_id>", methods=["PUT"])
|
||||
@jwt_required()
|
||||
def update_cron_job(cron_job_id):
|
||||
cron_job = CronJob.query.get(cron_job_id)
|
||||
if not cron_job:
|
||||
return jsonify({"error": "定时任务不存在"}), 404
|
||||
|
||||
data = request.get_json()
|
||||
errors = cron_job_update_schema.validate(data)
|
||||
if errors:
|
||||
return jsonify({"error": errors}), 400
|
||||
|
||||
try:
|
||||
updated_cron_job = CronJobService.update_cron_job(cron_job, data)
|
||||
return jsonify(cron_job_schema.dump(updated_cron_job))
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/cron-jobs/<int:cron_job_id>", methods=["DELETE"])
|
||||
@jwt_required()
|
||||
def delete_cron_job(cron_job_id):
|
||||
try:
|
||||
CronJobService.delete_cron_job(cron_job_id)
|
||||
return jsonify({"message": "定时任务已删除"})
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
Reference in New Issue
Block a user