try regetting token once if auth error during download

This commit is contained in:
Daniel Roth 2026-03-24 09:22:52 +00:00
parent 53502c28a8
commit 7c0a947bf4
2 changed files with 26 additions and 2 deletions

View file

@ -13,6 +13,10 @@ from utils.logger import setup_logger
logger = setup_logger()
class UnauthorizedError(Exception):
pass
class CotalityClient:
def __init__(self, token: str):
@ -93,6 +97,10 @@ class CotalityClient:
url = f"{self.base}/jobs/{job_id}/evidence"
r = self.session.get(url)
if r.status_code == 401:
raise UnauthorizedError("Token expired or invalid")
r.raise_for_status()
results = r.json().get("results", [])
@ -118,6 +126,10 @@ class CotalityClient:
def _download_file(self, url: str, file_name: str) -> None:
r = requests.get(url)
if r.status_code == 401:
raise UnauthorizedError()
r.raise_for_status()
with open(file_name, "wb") as f:

View file

@ -1,7 +1,7 @@
import time
from typing import Any, List, Mapping
from backend.pashub_fetcher.cotality_client import CotalityClient
from backend.pashub_fetcher.cotality_client import CotalityClient, UnauthorizedError
from backend.pashub_fetcher.token_getter import get_token_from_local_storage
from utils.logger import setup_logger
@ -29,7 +29,19 @@ def handler(event: Mapping[str, Any], context: Any) -> None:
saved_files: List[str] = []
for job_id in jobs:
saved_files.extend(client.get_core_envidence_files_by_job_id(job_id))
try:
saved_files.extend(client.get_core_envidence_files_by_job_id(job_id))
except UnauthorizedError:
logger.warning("Token expired — refreshing")
token = get_token_from_local_storage(pas_hub_email, pas_hub_password)
client = CotalityClient(token=token)
# retry once
saved_files.extend(client.get_core_envidence_files_by_job_id(job_id))
time.sleep(10) # Simulate manual download
print(f"saved {len(saved_files)} files")