import time
import requests
def wait_for_batch(bulk_job_id, api_key, timeout_s=300, interval_s=3):
url = f"https://dev-backend-ai.truefans.in/api/external/v1/bulk-jobs/{bulk_job_id}/status/"
headers = {"Authorization": f"Bearer {api_key}"}
deadline = time.monotonic() + timeout_s
while time.monotonic() < deadline:
resp = requests.get(url, headers=headers)
resp.raise_for_status()
data = resp.json()
if data["csv_ready"]:
return data
time.sleep(interval_s)
raise TimeoutError(f"bulk job {bulk_job_id} did not finish in {timeout_s}s")