|
1 | 1 | from typing import Optional |
2 | 2 |
|
| 3 | +from hyperbrowser.exceptions import HyperbrowserError |
3 | 4 | from hyperbrowser.models import ( |
4 | 5 | StartBatchFetchJobParams, |
5 | 6 | StartBatchFetchJobResponse, |
@@ -27,7 +28,17 @@ def __init__(self, client): |
27 | 28 | async def start( |
28 | 29 | self, params: StartBatchFetchJobParams |
29 | 30 | ) -> StartBatchFetchJobResponse: |
30 | | - payload = params.model_dump(exclude_none=True, by_alias=True) |
| 31 | + try: |
| 32 | + payload = params.model_dump(exclude_none=True, by_alias=True) |
| 33 | + except HyperbrowserError: |
| 34 | + raise |
| 35 | + except Exception as exc: |
| 36 | + raise HyperbrowserError( |
| 37 | + "Failed to serialize batch fetch start params", |
| 38 | + original_error=exc, |
| 39 | + ) from exc |
| 40 | + if type(payload) is not dict: |
| 41 | + raise HyperbrowserError("Failed to serialize batch fetch start params") |
31 | 42 | inject_web_output_schemas( |
32 | 43 | payload, params.outputs.formats if params.outputs else None |
33 | 44 | ) |
@@ -56,9 +67,20 @@ async def get( |
56 | 67 | self, job_id: str, params: Optional[GetBatchFetchJobParams] = None |
57 | 68 | ) -> BatchFetchJobResponse: |
58 | 69 | params_obj = params or GetBatchFetchJobParams() |
| 70 | + try: |
| 71 | + query_params = params_obj.model_dump(exclude_none=True, by_alias=True) |
| 72 | + except HyperbrowserError: |
| 73 | + raise |
| 74 | + except Exception as exc: |
| 75 | + raise HyperbrowserError( |
| 76 | + "Failed to serialize batch fetch get params", |
| 77 | + original_error=exc, |
| 78 | + ) from exc |
| 79 | + if type(query_params) is not dict: |
| 80 | + raise HyperbrowserError("Failed to serialize batch fetch get params") |
59 | 81 | response = await self._client.transport.get( |
60 | 82 | self._client._build_url(f"/web/batch-fetch/{job_id}"), |
61 | | - params=params_obj.model_dump(exclude_none=True, by_alias=True), |
| 83 | + params=query_params, |
62 | 84 | ) |
63 | 85 | return parse_response_model( |
64 | 86 | response.data, |
|
0 commit comments