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/", 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//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//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