from __future__ import annotations from flask import Response, jsonify, request def build_cors_headers() -> dict: origin = request.headers.get("Origin", "*") req_headers = request.headers.get("Access-Control-Request-Headers") allow_headers = req_headers if req_headers else "Authorization, Content-Type, Accept" return { "Access-Control-Allow-Origin": origin, "Access-Control-Allow-Methods": "POST, GET, OPTIONS", "Access-Control-Allow-Headers": allow_headers, "Access-Control-Max-Age": "86400", } def json_error(message: str, status: int = 400) -> Response: resp = jsonify({"error": {"message": message}}) response: Response = Response(response=resp.response, status=status, mimetype="application/json") for k, v in build_cors_headers().items(): response.headers.setdefault(k, v) return response