"""Fetch transfer job data from ows-project-manager.""" from __future__ import annotations from typing import Any from src import config from src.errors import PermanentError from src.ows_response import parse_json_response def get_transfer_job(job_id: int) -> dict[str, Any]: """GET /transfer/job/{job_id} on ows-project-manager.""" resp = config.ows_client.get("ows-project-manager", path=f"/transfer/job/{job_id}") data: dict[str, Any] = parse_json_response("ows-project-manager", resp) originating_vendor_id = data.get("originating_vendor_id") destination_vendor_id = data.get("destination_vendor_id") if not isinstance(originating_vendor_id, int): raise PermanentError(f"transfer job {job_id} missing valid originating_vendor_id: {originating_vendor_id!r}") if not isinstance(destination_vendor_id, int): raise PermanentError(f"transfer job {job_id} missing valid destination_vendor_id: {destination_vendor_id!r}") return {"originating_vendor_id": originating_vendor_id, "destination_vendor_id": destination_vendor_id}