mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
try regetting token once if auth error during download
This commit is contained in:
parent
53502c28a8
commit
7c0a947bf4
2 changed files with 26 additions and 2 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue