first commit
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
from flask import jsonify, request
|
||||
from flask_jwt_extended import jwt_required
|
||||
from . import api_bp
|
||||
from ..models import Model
|
||||
from ..schemas import ModelSchema, ModelCreateSchema
|
||||
from ..services import ModelService
|
||||
|
||||
|
||||
model_schema = ModelSchema()
|
||||
model_create_schema = ModelCreateSchema()
|
||||
|
||||
|
||||
@api_bp.route("/models", methods=["GET"])
|
||||
@jwt_required()
|
||||
def get_models():
|
||||
models = Model.query.all()
|
||||
return jsonify(model_schema.dump(models, many=True))
|
||||
|
||||
|
||||
@api_bp.route("/models", methods=["POST"])
|
||||
@jwt_required()
|
||||
def create_model():
|
||||
data = request.get_json()
|
||||
errors = model_create_schema.validate(data)
|
||||
if errors:
|
||||
return jsonify({"error": errors}), 400
|
||||
|
||||
try:
|
||||
model = ModelService.create_model(data)
|
||||
return jsonify(model_schema.dump(model)), 201
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/models/<int:model_id>", methods=["GET"])
|
||||
@jwt_required()
|
||||
def get_model(model_id):
|
||||
model = Model.query.get(model_id)
|
||||
if not model:
|
||||
return jsonify({"error": "模型不存在"}), 404
|
||||
return jsonify(model_schema.dump(model))
|
||||
|
||||
|
||||
@api_bp.route("/models/<int:model_id>", methods=["PUT"])
|
||||
@jwt_required()
|
||||
def update_model(model_id):
|
||||
model = Model.query.get(model_id)
|
||||
if not model:
|
||||
return jsonify({"error": "模型不存在"}), 404
|
||||
|
||||
data = request.get_json()
|
||||
try:
|
||||
updated_model = ModelService.update_model(model, data)
|
||||
return jsonify(model_schema.dump(updated_model))
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/models/<int:model_id>", methods=["DELETE"])
|
||||
@jwt_required()
|
||||
def delete_model(model_id):
|
||||
try:
|
||||
ModelService.delete_model(model_id)
|
||||
return jsonify({"message": "模型已删除"})
|
||||
except ValueError as e:
|
||||
return jsonify({"error": str(e)}), 400
|
||||
|
||||
|
||||
@api_bp.route("/models/default", methods=["GET"])
|
||||
@jwt_required()
|
||||
def get_default_model():
|
||||
model = Model.query.filter_by(is_default=True, is_active=True).first()
|
||||
if not model:
|
||||
return jsonify({"error": "默认模型不存在"}), 404
|
||||
return jsonify(model_schema.dump(model))
|
||||
Reference in New Issue
Block a user