"""HTTP client for ows-project-manager.""" from src import config _REQUIRED_RESULT_FIELDS = ( "project_updated", "releases_updated", "video_rows_updated", ) def execute_content_transfer(job_id: int) -> dict[str, int]: """POST /transfer/job/{job_id}/execute-content-transfer on ows-project-manager.""" resp = config.ows_client.post( "ows-project-manager", path=f"/transfer/job/{job_id}/execute-content-transfer", ) if resp.status_code != 200: raise RuntimeError( f"execute_content_transfer failed for job {job_id}: status={resp.status_code} body={resp.text}" ) try: payload = resp.json() except ValueError as exc: raise RuntimeError(f"execute_content_transfer returned non-JSON response for job {job_id}") from exc if not isinstance(payload, dict): raise RuntimeError( f"execute_content_transfer returned unexpected payload type for job {job_id}: {type(payload).__name__}" ) result: dict[str, int] = {} for field in _REQUIRED_RESULT_FIELDS: value = payload.get(field) if type(value) is not int: raise RuntimeError(f"execute_content_transfer returned invalid '{field}' for job {job_id}: {value!r}") result[field] = value return result