"""Routes for the tunings lookup table.""" from flask import Blueprint, jsonify, request from app.extensions import db from app.models import Tuning from app.auth import require_api_key tunings_bp = Blueprint("tunings", __name__, url_prefix="/tunings") @tunings_bp.get("/") def list_tunings(): return jsonify([t.to_dict() for t in db.session.query(Tuning).order_by(Tuning.name).all()]) @tunings_bp.post("/") @require_api_key def create_tuning(): data = request.get_json(force=True) tuning = Tuning(name=data["name"]) db.session.add(tuning) db.session.commit() return jsonify(tuning.to_dict()), 201 @tunings_bp.patch("/") @require_api_key def update_tuning(tuning_id): tuning = db.get_or_404(Tuning, tuning_id) data = request.get_json(force=True) if "name" in data: tuning.name = data["name"] db.session.commit() return jsonify(tuning.to_dict()) @tunings_bp.delete("/") @require_api_key def delete_tuning(tuning_id): tuning = db.get_or_404(Tuning, tuning_id) db.session.delete(tuning) db.session.commit() return jsonify({"deleted": tuning_id})