Api

class ambra_sdk.api.Api(*args, **kwargs)[source]

Ambra API.

Example: >>> from ambra_sdk.api import Api >>> >>> api = Api.with_creds( … url=’https://ambrahealth_host/api/v3’, … username=’username’, … password=’password’, … client_name=’Some name (ex: Hospital-ABC)’, … )

Using some special parameters (In most cases you don’t need this!):

>>> from ambra_sdk.api import Api
>>> from ambra_sdk.api.base_api import RateLimit, RateLimits
>>>
>>> MY_RLS = RateLimits(
...        default=RateLimit(3, 2),
...        get_limit=RateLimit(4, 2),
...        special={'special_url': RateLimit(5, 2)},
... )
>>>
>>> api = Api.with_creds(
...     url='https://ambrahealth_host/api/v3',
...     username='username',
...     password='password',
...     client_name='Some name (ex: Hospital-ABC)',
...     special_headers_for_login={'Special-H': 'ABC'},
...     rate_limits=MY_RLS,
...     autocast_arguments=False,
... )
get_new_sid() → str[source]

Get new sid.

Raises

RuntimeError – Missed credentials

Returns

sid

get_sid() → str[source]

Get or create new sid.

Returns

sid

logout()[source]

Logout.

retry_with_new_sid(fn: Callable[, FN_RETURN_TYPE]) → FN_RETURN_TYPE[source]

Retry with new sid.

Parameters

fn – callable method

Returns

fn result

service_post(url: str, required_sid: bool, **kwargs) → requests.models.Response[source]

Post data to url.

Parameters
  • url – method url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response

service_request(request_args: ambra_sdk.request_args.RequestArgs, required_sid: bool) → requests.models.Response[source]

Post data to url.

Parameters
  • request_args – request args

  • required_sid – is this method required sid

Returns

response

property service_session

Service session.

Returns

service session

property sid

Get or create new sid property.

Returns

sid

storage_delete(url: str, required_sid: bool, **kwargs) → requests.models.Response[source]

Delete from storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

storage_get(url: str, required_sid: bool, **kwargs) → requests.models.Response[source]

Get from storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

storage_post(url: str, required_sid: bool, **kwargs) → requests.models.Response[source]

Post to storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

property storage_session

Storage session.

Returns

storage session

Async Api

class ambra_sdk.api.AsyncApi(*args, **kwargs)[source]

Ambra Async API.

Example: >>> from ambra_sdk.api import AsyncApi >>> >>> api = AsyncApi.with_creds( … url=’https://ambrahealth_host/api/v3’, … username=’username’, … password=’password’, … client_name=’Some name (ex: Hospital-ABC)’, … )

Using some special parameters (In most cases you don’t need this!):

>>> from ambra_sdk.api import AsyncApi
>>> from ambra_sdk.api.base_api import RateLimit, RateLimits
>>>
>>> MY_RLS = RateLimits(
...        default=RateLimit(3, 2),
...        get_limit=RateLimit(4, 2),
...        special={'special_url': RateLimit(5, 2)},
... )
>>>
>>> api = AsyncApi.with_creds(
...     url='https://ambrahealth_host/api/v3',
...     username='username',
...     password='password',
...     client_name='Some name (ex: Hospital-ABC)',
...     special_headers_for_login={'Special-H': 'ABC'},
...     rate_limits=MY_RLS,
...     autocast_arguments=False,
... )
async get_new_sid() → str[source]

Get new sid.

Raises

RuntimeError – Missed credentials

Returns

sid

async get_sid() → str[source]

Get or create new sid.

Returns

sid

async logout()[source]

Logout.

async retry_with_new_sid(fn: Callable[, Awaitable[FN_RETURN_TYPE]]) → FN_RETURN_TYPE[source]

Retry with new sid.

Parameters

fn – callable method

Returns

fn result

async service_post(url: str, required_sid: bool, **kwargs) → aiohttp.client_reqrep.ClientResponse[source]

Post data to url.

Parameters
  • url – method url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response

async service_request(request_args: ambra_sdk.request_args.AioHTTPRequestArgs, required_sid: bool) → aiohttp.client_reqrep.ClientResponse[source]

Post data to url.

Parameters
  • request_args – request args

  • required_sid – is this method required sid

Returns

response

property service_session

Service session.

Returns

service session

async storage_delete(url: str, required_sid: bool, **kwargs) → aiohttp.client_reqrep.ClientResponse[source]

Delete from storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

async storage_get(url: str, required_sid: bool, **kwargs) → aiohttp.client_reqrep.ClientResponse[source]

Get from storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

async storage_post(url: str, required_sid: bool, **kwargs) → aiohttp.client_reqrep.ClientResponse[source]

Post to storage.

Parameters
  • url – url

  • required_sid – is this method required sid

  • kwargs – request arguments

Returns

response obj

property storage_session

Storage session.

Returns

storage session