first commit

This commit is contained in:
2026-04-07 16:05:05 +08:00
commit 9d9bdbb1ce
136 changed files with 5103 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
from flask import jsonify
from flask_jwt_extended import jwt_required
from . import api_bp
from ..models import Skill
from ..schemas import SkillSchema
from ..services import SkillService
skill_schema = SkillSchema()
@api_bp.route("/skills", methods=["GET"])
@jwt_required()
def get_skills():
skills = Skill.query.all()
return jsonify(skill_schema.dump(skills, many=True))
@api_bp.route("/skills/<int:skill_id>", methods=["GET"])
@jwt_required()
def get_skill(skill_id):
skill = Skill.query.get(skill_id)
if not skill:
return jsonify({"error": "技能不存在"}), 404
return jsonify(skill_schema.dump(skill))
@api_bp.route("/skills/<int:skill_id>/install", methods=["POST"])
@jwt_required()
def install_skill(skill_id):
try:
SkillService.install_skill(skill_id)
return jsonify({"message": "技能已安装"})
except ValueError as e:
return jsonify({"error": str(e)}), 400
@api_bp.route("/skills/<int:skill_id>/uninstall", methods=["POST"])
@jwt_required()
def uninstall_skill(skill_id):
try:
SkillService.uninstall_skill(skill_id)
return jsonify({"message": "技能已卸载"})
except ValueError as e:
return jsonify({"error": str(e)}), 400