108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import Any, Dict, Optional, Union
 | |
| 
 | |
| import httpx
 | |
| 
 | |
| from ...client import Client
 | |
| from ...models.error import Error
 | |
| from ...models.payment_intent import PaymentIntent
 | |
| from ...types import Response
 | |
| 
 | |
| 
 | |
| def _get_kwargs(
 | |
|     *,
 | |
|     client: Client,
 | |
| ) -> Dict[str, Any]:
 | |
|     url = "{}/user/payment/intent".format(
 | |
|         client.base_url,
 | |
|     )  # noqa: E501
 | |
| 
 | |
|     headers: Dict[str, Any] = client.get_headers()
 | |
|     cookies: Dict[str, Any] = client.get_cookies()
 | |
| 
 | |
|     return {
 | |
|         "url": url,
 | |
|         "headers": headers,
 | |
|         "cookies": cookies,
 | |
|         "timeout": client.get_timeout(),
 | |
|     }
 | |
| 
 | |
| 
 | |
| def _parse_response(
 | |
|     *, response: httpx.Response
 | |
| ) -> Optional[Union[PaymentIntent, Error]]:
 | |
|     if response.status_code == 201:
 | |
|         response_201 = PaymentIntent(**response.json())
 | |
|         return response_201
 | |
|     if response.status_code == 400:
 | |
|         response_4XX = Error(**response.json())
 | |
|         return response_4XX
 | |
|     if response.status_code == 500:
 | |
|         response_5XX = Error(**response.json())
 | |
|         return response_5XX
 | |
|     return Error(**response.json())
 | |
| 
 | |
| 
 | |
| def _build_response(
 | |
|     *, response: httpx.Response
 | |
| ) -> Response[Optional[Union[PaymentIntent, Error]]]:
 | |
|     return Response(
 | |
|         status_code=response.status_code,
 | |
|         content=response.content,
 | |
|         headers=response.headers,
 | |
|         parsed=_parse_response(response=response),
 | |
|     )
 | |
| 
 | |
| 
 | |
| def sync_detailed(
 | |
|     *,
 | |
|     client: Client,
 | |
| ) -> Response[Optional[Union[PaymentIntent, Error]]]:
 | |
|     kwargs = _get_kwargs(
 | |
|         client=client,
 | |
|     )
 | |
| 
 | |
|     response = httpx.post(
 | |
|         verify=client.verify_ssl,
 | |
|         **kwargs,
 | |
|     )
 | |
| 
 | |
|     return _build_response(response=response)
 | |
| 
 | |
| 
 | |
| def sync(
 | |
|     *,
 | |
|     client: Client,
 | |
| ) -> Optional[Union[PaymentIntent, Error]]:
 | |
|     """This endpoint requires authentication by any Zoo user. It creates a new payment intent for the authenticated user."""  # noqa: E501
 | |
| 
 | |
|     return sync_detailed(
 | |
|         client=client,
 | |
|     ).parsed
 | |
| 
 | |
| 
 | |
| async def asyncio_detailed(
 | |
|     *,
 | |
|     client: Client,
 | |
| ) -> Response[Optional[Union[PaymentIntent, Error]]]:
 | |
|     kwargs = _get_kwargs(
 | |
|         client=client,
 | |
|     )
 | |
| 
 | |
|     async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
 | |
|         response = await _client.post(**kwargs)
 | |
| 
 | |
|     return _build_response(response=response)
 | |
| 
 | |
| 
 | |
| async def asyncio(
 | |
|     *,
 | |
|     client: Client,
 | |
| ) -> Optional[Union[PaymentIntent, Error]]:
 | |
|     """This endpoint requires authentication by any Zoo user. It creates a new payment intent for the authenticated user."""  # noqa: E501
 | |
| 
 | |
|     return (
 | |
|         await asyncio_detailed(
 | |
|             client=client,
 | |
|         )
 | |
|     ).parsed
 |