def from_json(cls, json_str: str) -> ApiContext: """ Creates an ApiContext instance from JSON string. """ return converter.json_to_class(ApiContext, json_str)
def create_with_api_context( cls, client_payment_service_provider_certificate: str, client_payment_service_provider_certificate_chain: str, client_public_key_signature: str, api_context: ApiContext, all_custom_header=None) -> UserCredentialPasswordIp: request_map = { cls.FIELD_CLIENT_PAYMENT_SERVICE_PROVIDER_CERTIFICATE: client_payment_service_provider_certificate, cls.FIELD_CLIENT_PAYMENT_SERVICE_PROVIDER_CERTIFICATE_CHAIN: client_payment_service_provider_certificate_chain, cls.FIELD_CLIENT_PUBLIC_KEY_SIGNATURE: client_public_key_signature } if all_custom_header is None: all_custom_header = {} api_client = ApiClient(api_context) request_bytes = converter.class_to_json(request_map).encode() endpoint_url = cls._ENDPOINT_URL_CREATE response_raw = api_client.post(endpoint_url, request_bytes, all_custom_header) response_body = converter.json_to_class( dict, response_raw.body_bytes.decode()) response_body_dict = converter.deserialize( cls, response_body[cls._FIELD_RESPONSE])[0] return UserCredentialPasswordIp.from_json( json.dumps(response_body_dict[cls._OBJECT_TYPE_GET]))
def _from_json_array_nested( cls, response_raw: BunqResponseRaw) -> BunqResponse[BunqModel]: json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) value = converter.deserialize(cls, obj[cls._FIELD_RESPONSE]) return BunqResponse(value, response_raw.headers)
def from_json(cls, class_of_object: Type[T], response_raw: BunqResponseRaw): response_item_object = converter.deserialize(class_of_object, response_raw) response_value = converter.json_to_class(class_of_object, response_item_object) return BunqResponse(response_value, response_raw.headers)
def _fetch_all_error_message(self, response: Response) -> List[str]: response_content_string = response.content.decode() try: error_dict = converter.json_to_class(dict, response_content_string) return self._fetch_error_descriptions(error_dict) except ValueError: return [response_content_string]
def _from_json(cls, response_raw: BunqResponseRaw, wrapper: str = None) -> BunqResponse[BunqModel]: json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) value = converter.deserialize( cls, cls._unwrap_response_single(obj, wrapper)) return BunqResponse(value, response_raw.headers)
def from_json(cls, json_str): """ Creates an ApiContext instance from JSON string. :type json_str: str :rtype: ApiContext """ return converter.json_to_class(ApiContext, json_str)
def _process_for_uuid(cls, response_raw: BunqResponseRaw) -> BunqResponse[str]: from bunq.sdk.model.core.uuid import Uuid json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) uuid = converter.deserialize( Uuid, cls._unwrap_response_single(obj, cls._FIELD_UUID)) return BunqResponse(uuid.uuid, response_raw.headers)
def _process_for_id(cls, response_raw: BunqResponseRaw) -> BunqResponse[int]: from bunq.sdk.model.core.id import Id json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) id_ = converter.deserialize( Id, cls._unwrap_response_single(obj, cls._FIELD_ID)) return BunqResponse(id_.id_, response_raw.headers)
def _from_json_array_nested(cls, response_raw): """ :type response_raw: client.BunqResponseRaw :rtype: bunq.sdk.client.BunqResponse[cls] """ json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) value = converter.deserialize(cls, obj[cls._FIELD_RESPONSE]) return client.BunqResponse(value, response_raw.headers)
def _process_for_uuid(cls, response_raw): """ :type response_raw: client.BunqResponseRaw :rtype: client.BunqResponse[str] """ json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) uuid = converter.deserialize( Uuid, cls._unwrap_response_single(obj, cls._FIELD_UUID)) return client.BunqResponse(uuid.uuid, response_raw.headers)
def _process_for_id(cls, response_raw): """ :type response_raw: client.BunqResponseRaw :rtype: client.BunqResponse[int] """ json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) id_ = converter.deserialize( Id, cls._unwrap_response_single(obj, cls._FIELD_ID)) return client.BunqResponse(id_.id_, response_raw.headers)
def _from_json(cls, response_raw, wrapper=None): """ :type response_raw: client.BunqResponseRaw :type wrapper: str|None :rtype: client.BunqResponse[cls] """ json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) value = converter.deserialize( cls, cls._unwrap_response_single(obj, wrapper)) return client.BunqResponse(value, response_raw.headers)
def _fetch_error_messages(self, response): """ :type response: requests.Response :rtype: list[str] """ response_content_string = response.content.decode() try: error_dict = converter.json_to_class(dict, response_content_string) return self._fetch_error_descriptions(error_dict) except JSONDecodeError: return [response_content_string]
def _from_json_list(cls, response_raw, wrapper=None): """ :type response_raw: client.BunqResponseRaw :type wrapper: str|None :rtype: client.BunqResponse[list[cls]] """ json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) array = obj[cls._FIELD_RESPONSE] array_deserialized = [] for item in array: item_unwrapped = item if wrapper is None else item[wrapper] item_deserialized = converter.deserialize(cls, item_unwrapped) array_deserialized.append(item_deserialized) pagination = converter.deserialize(client.Pagination, obj[cls._FIELD_PAGINATION]) return client.BunqResponse(array_deserialized, response_raw.headers, pagination)
def _from_json_list(cls, response_raw: BunqResponseRaw, wrapper: str = None) -> BunqResponse[List[T]]: from bunq import Pagination json = response_raw.body_bytes.decode() obj = converter.json_to_class(dict, json) array = obj[cls._FIELD_RESPONSE] array_deserialized = [] for item in array: item_unwrapped = item if wrapper is None else item[wrapper] item_deserialized = converter.deserialize(cls, item_unwrapped) array_deserialized.append(item_deserialized) pagination = None if cls._FIELD_PAGINATION in obj: pagination = converter.deserialize(Pagination, obj[cls._FIELD_PAGINATION]) return BunqResponse(array_deserialized, response_raw.headers, pagination)