from typing import Any

from flask import Response, redirect, request, url_for

type ApiResponse = tuple[dict[str, Any], int] | Response


def handle_api_response(data: dict, status_code: int = 200) -> ApiResponse:
    """Handles the fallback if the request is not an AJAX request (XMLHttpRequest)."""
    if request.headers.get("X-Requested-With") == "XMLHttpRequest":
        return data, status_code
    target_url = request.referrer or url_for("views.index")
    return redirect(target_url)
