"""Routes for reference_sites lookup table.""" from flask import Blueprint, jsonify, request from app.extensions import db from app.models import ReferenceSite from app.auth import require_api_key reference_sites_bp = Blueprint("reference_sites", __name__, url_prefix="/reference_sites") @reference_sites_bp.get("/") def list_reference_sites(): sites = db.session.query(ReferenceSite).order_by(ReferenceSite.name).all() return jsonify([s.to_dict() for s in sites]) @reference_sites_bp.post("/") @require_api_key def create_reference_site(): data = request.get_json(force=True) site = ReferenceSite(name=data["name"]) db.session.add(site) db.session.commit() return jsonify(site.to_dict()), 201 @reference_sites_bp.patch("/") @require_api_key def update_reference_site(site_id): site = db.get_or_404(ReferenceSite, site_id) data = request.get_json(force=True) if "name" in data: site.name = data["name"] db.session.commit() return jsonify(site.to_dict()) @reference_sites_bp.delete("/") @require_api_key def delete_reference_site(site_id): site = db.get_or_404(ReferenceSite, site_id) db.session.delete(site) db.session.commit() return jsonify({"deleted": site_id})