2022-04-06 23:20:20 -07:00
from typing import Any , Dict , Optional , Union , cast
2022-04-06 20:35:34 -07:00
import httpx
from . . . client import Client
2022-04-06 22:41:11 -07:00
from . . . models . extended_user_results_page import ExtendedUserResultsPage
2022-04-06 20:35:34 -07:00
from . . . models . error import Error
from . . . models . created_at_sort_mode import CreatedAtSortMode
from . . . types import Response
def _get_kwargs (
sort_by : CreatedAtSortMode ,
* ,
client : Client ,
2023-01-27 16:22:14 -08:00
limit : Optional [ int ] = None ,
page_token : Optional [ str ] = None ,
2022-04-06 20:35:34 -07:00
) - > Dict [ str , Any ] :
2022-06-14 10:57:00 +00:00
url = " {} /users-extended?limit= {limit} &page_token= {page_token} &sort_by= {sort_by} " . format ( client . base_url , limit = limit , page_token = page_token , sort_by = sort_by )
2022-04-06 20:35:34 -07:00
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 ( ) ,
}
2022-04-06 22:41:11 -07:00
def _parse_response ( * , response : httpx . Response ) - > Optional [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
if response . status_code == 200 :
2022-04-06 22:41:11 -07:00
response_200 = ExtendedUserResultsPage . from_dict ( response . json ( ) )
2022-04-06 20:35:34 -07:00
return response_200
2022-04-06 20:48:04 -07:00
if response . status_code == 400 :
2022-04-06 20:35:34 -07:00
response_4XX = Error . from_dict ( response . json ( ) )
return response_4XX
2022-04-06 20:48:04 -07:00
if response . status_code == 500 :
2022-04-06 20:35:34 -07:00
response_5XX = Error . from_dict ( response . json ( ) )
return response_5XX
return None
2022-04-06 22:41:11 -07:00
def _build_response ( * , response : httpx . Response ) - > Response [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
return Response (
status_code = response . status_code ,
content = response . content ,
headers = response . headers ,
parsed = _parse_response ( response = response ) ,
)
def sync_detailed (
sort_by : CreatedAtSortMode ,
* ,
client : Client ,
2023-01-27 16:22:14 -08:00
limit : Optional [ int ] = None ,
page_token : Optional [ str ] = None ,
2022-04-06 22:41:11 -07:00
) - > Response [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
kwargs = _get_kwargs (
limit = limit ,
page_token = page_token ,
sort_by = sort_by ,
client = client ,
)
response = httpx . get (
verify = client . verify_ssl ,
* * kwargs ,
)
return _build_response ( response = response )
def sync (
sort_by : CreatedAtSortMode ,
* ,
client : Client ,
2023-01-27 16:22:14 -08:00
limit : Optional [ int ] = None ,
page_token : Optional [ str ] = None ,
2022-04-06 22:41:11 -07:00
) - > Optional [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
""" This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first. """
return sync_detailed (
limit = limit ,
page_token = page_token ,
sort_by = sort_by ,
client = client ,
) . parsed
async def asyncio_detailed (
sort_by : CreatedAtSortMode ,
* ,
client : Client ,
2023-01-27 16:22:14 -08:00
limit : Optional [ int ] = None ,
page_token : Optional [ str ] = None ,
2022-04-06 22:41:11 -07:00
) - > Response [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
kwargs = _get_kwargs (
limit = limit ,
page_token = page_token ,
sort_by = sort_by ,
client = client ,
)
async with httpx . AsyncClient ( verify = client . verify_ssl ) as _client :
response = await _client . get ( * * kwargs )
return _build_response ( response = response )
async def asyncio (
sort_by : CreatedAtSortMode ,
* ,
client : Client ,
2023-01-27 16:22:14 -08:00
limit : Optional [ int ] = None ,
page_token : Optional [ str ] = None ,
2022-04-06 22:41:11 -07:00
) - > Optional [ Union [ Any , ExtendedUserResultsPage , Error ] ] :
2022-04-06 20:35:34 -07:00
""" This endpoint required authentication by a KittyCAD employee. The users are returned in order of creation, with the most recently created users first. """
return (
await asyncio_detailed (
2022-06-11 18:30:39 -07:00
limit = limit ,
page_token = page_token ,
sort_by = sort_by ,
2022-04-06 20:35:34 -07:00
client = client ,
)
) . parsed