from flask import request, jsonify, g from catalog.api import create_app from catalog import service from owsrequest import flask_request app = create_app() @app.route("/hello/", methods=["GET"]) def health(): return "ok", 200 @app.route("/catalog/", methods=["GET"]) def get_catalog(catalog_id): catalog = service.get(catalog_id) flask_request.verify_grass_access( request, vendor=catalog.vendor_id, subaccount=catalog.subaccount_id ) return jsonify(catalog.to_dict()) @app.route("/catalog//items/", methods=["DELETE"]) def delete_catalog_item(catalog_id, item_id): flask_request.verify_grass_access(request, vendor=service.get(catalog_id).vendor_id) service.delete_item(catalog_id, item_id) return "", 204 # This endpoint is NOT present in access_rules.yml — covered only by the catch-all rule. @app.route("/catalog/internal/sync", methods=["POST"]) def internal_sync(): result = service.sync() return jsonify(result)