Added an endpoint for getting the actual stored responses, and used it to test and improve the python package.
99 lines
2.4 KiB
Python
99 lines
2.4 KiB
Python
from http import HTTPStatus
|
|
from typing import Any, Dict, Optional, Union
|
|
|
|
import httpx
|
|
|
|
from ... import errors
|
|
from ...client import AuthenticatedClient, Client
|
|
from ...models.report_json_body import ReportJsonBody
|
|
from ...types import Response
|
|
|
|
|
|
def _get_kwargs(
|
|
*,
|
|
json_body: ReportJsonBody,
|
|
) -> Dict[str, Any]:
|
|
pass
|
|
|
|
json_json_body = json_body.to_dict()
|
|
|
|
return {
|
|
"method": "post",
|
|
"url": "/report",
|
|
"json": json_json_body,
|
|
}
|
|
|
|
|
|
def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
|
|
if response.status_code == HTTPStatus.OK:
|
|
return None
|
|
if client.raise_on_unexpected_status:
|
|
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
else:
|
|
return None
|
|
|
|
|
|
def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
|
|
return Response(
|
|
status_code=HTTPStatus(response.status_code),
|
|
content=response.content,
|
|
headers=response.headers,
|
|
parsed=_parse_response(client=client, response=response),
|
|
)
|
|
|
|
|
|
def sync_detailed(
|
|
*,
|
|
client: AuthenticatedClient,
|
|
json_body: ReportJsonBody,
|
|
) -> Response[Any]:
|
|
"""Report an API call
|
|
|
|
Args:
|
|
json_body (ReportJsonBody):
|
|
|
|
Raises:
|
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
|
|
Returns:
|
|
Response[Any]
|
|
"""
|
|
|
|
kwargs = _get_kwargs(
|
|
json_body=json_body,
|
|
)
|
|
|
|
response = client.get_httpx_client().request(
|
|
**kwargs,
|
|
)
|
|
|
|
return _build_response(client=client, response=response)
|
|
|
|
|
|
async def asyncio_detailed(
|
|
*,
|
|
client: AuthenticatedClient,
|
|
json_body: ReportJsonBody,
|
|
) -> Response[Any]:
|
|
"""Report an API call
|
|
|
|
Args:
|
|
json_body (ReportJsonBody):
|
|
|
|
Raises:
|
|
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
|
|
Returns:
|
|
Response[Any]
|
|
"""
|
|
|
|
kwargs = _get_kwargs(
|
|
json_body=json_body,
|
|
)
|
|
|
|
response = await client.get_async_httpx_client().request(**kwargs)
|
|
|
|
return _build_response(client=client, response=response)
|