44 lines
1.2 KiB
Python
44 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})
|