repertory-api/app/routes_reference_sites.py
Ian Keane 507531fbff Changes for refactor of references view, add unique keys for some tables
References sites table updated so we can filter by site later, added
timestamp to tunes so they can be sorted in certain contexts, enforced
uniqueness on some tables that were causing issues
2026-06-11 10:05:23 -04:00

43 lines
1.2 KiB
Python

"""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("/<int:site_id>")
@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("/<int:site_id>")
@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})