def deserialize(cls, target_class, obj): """ :type target_class: object_.ShareDetail|type :type obj: dict :rtype: object_.ShareDetail """ share_detail = target_class.__new__(target_class) share_detail.__dict__ = { cls._ATTRIBUTE_PAYMENT: converter.deserialize( object_.ShareDetailPayment, cls._get_field_or_none(cls._FIELD_DRAFT_PAYMENT, obj)), cls._ATTRIBUTE_READ_ONLY: converter.deserialize( object_.ShareDetailReadOnly, cls._get_field_or_none(cls._FIELD_READ_ONLY, obj)), cls._ATTRIBUTE_DRAFT_PAYMENT: converter.deserialize( object_.ShareDetailDraftPayment, cls._get_field_or_none(cls._FIELD_DRAFT_PAYMENT, obj)), } return share_detail
def deserialize(cls, target_class: Type[MonetaryAccountReference], obj: Dict) -> MonetaryAccountReference: label_monetary_account = converter.deserialize(LabelMonetaryAccount, obj) return target_class.create_from_label_monetary_account( label_monetary_account)
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 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(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 deserialize(cls, target_class: Type[Installation], array: List) -> Installation: installation = target_class.__new__(target_class) server_public_key_wrapped = array[cls._INDEX_SERVER_PUBLIC_KEY] installation.__dict__ = { cls._ATTRIBUTE_ID: converter.deserialize(Id, array[cls._INDEX_ID][cls._FIELD_ID]), cls._ATTRIBUTE_TOKEN: converter.deserialize(SessionToken, array[cls._INDEX_TOKEN][cls._FIELD_TOKEN]), cls._ATTRIBUTE_SERVER_PUBLIC_KEY: converter.deserialize( PublicKeyServer, server_public_key_wrapped[cls._FIELD_SERVER_PUBLIC_KEY]), } return installation
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 _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 _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 _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 deserialize(cls, target_class, obj): """ :type target_class: object_.MonetaryAccountReference|type :type obj: dict :rtype: object_.MonetaryAccountReference """ label_monetary_account = converter.deserialize( object_.LabelMonetaryAccount, obj) return target_class.create_from_label_monetary_account( label_monetary_account)
def deserialize(cls, target_class, array): """ :type target_class: core.SessionServer|type :type array: list :rtype: core.SessionServer """ session_server = target_class.__new__(target_class) session_server.__dict__ = { cls._ATTRIBUTE_ID: converter.deserialize(core.Id, array[cls._INDEX_ID][cls._FIELD_ID]), cls._ATTRIBUTE_TOKEN: converter.deserialize(core.SessionToken, array[cls._INDEX_TOKEN][cls._FIELD_TOKEN]), cls._ATTRIBUTE_USER_COMPANY: None, cls._ATTRIBUTE_USER_PERSON: None, } user_dict_wrapped = array[cls._INDEX_USER] if cls._FIELD_USER_COMPANY in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_COMPANY] = \ converter.deserialize( endpoint.UserCompany, user_dict_wrapped[cls._FIELD_USER_COMPANY] ) elif cls._FIELD_USER_PERSON in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_PERSON] = \ converter.deserialize( endpoint.UserPerson, user_dict_wrapped[cls._FIELD_USER_PERSON] ) return session_server
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 _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)
def deserialize(cls, target_class, array): """ :type target_class: core.Installation|type :type array: list :rtype: core.Installation """ installation = target_class.__new__(target_class) server_public_key_wrapped = array[cls._INDEX_SERVER_PUBLIC_KEY] installation.__dict__ = { cls._ATTRIBUTE_ID: converter.deserialize(core.Id, array[cls._INDEX_ID][cls._FIELD_ID]), cls._ATTRIBUTE_TOKEN: converter.deserialize(core.SessionToken, array[cls._INDEX_TOKEN][cls._FIELD_TOKEN]), cls._ATTRIBUTE_SERVER_PUBLIC_KEY: converter.deserialize( core.PublicKeyServer, server_public_key_wrapped[cls._FIELD_SERVER_PUBLIC_KEY]), } return installation
def deserialize(cls, target_class: Type[SessionServer], array: List) -> SessionServer: session_server = target_class.__new__(target_class) session_server.__dict__ = { cls._ATTRIBUTE_ID: converter.deserialize(Id, array[cls._INDEX_ID][cls._FIELD_ID]), cls._ATTRIBUTE_TOKEN: converter.deserialize(SessionToken, array[cls._INDEX_TOKEN][cls._FIELD_TOKEN]), cls._ATTRIBUTE_USER_COMPANY: None, cls._ATTRIBUTE_USER_PERSON: None, cls._ATTRIBUTE_USER_PAYMENT_SERVER_PROVIDER: None, } user_dict_wrapped = array[cls._INDEX_USER] if cls._FIELD_USER_COMPANY in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_COMPANY] = \ converter.deserialize( endpoint.UserCompany, user_dict_wrapped[cls._FIELD_USER_COMPANY] ) elif cls._FIELD_USER_PERSON in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_PERSON] = \ converter.deserialize( endpoint.UserPerson, user_dict_wrapped[cls._FIELD_USER_PERSON] ) elif cls._FIELD_USER_API_KEY in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_API_KEY] = \ converter.deserialize( endpoint.UserApiKey, user_dict_wrapped[cls._FIELD_USER_API_KEY] ) elif cls._FIELD_USER_PAYMENT_SERVER_PROVIDER in user_dict_wrapped: session_server.__dict__[cls._ATTRIBUTE_USER_PAYMENT_SERVER_PROVIDER] = \ converter.deserialize( endpoint.UserPaymentServiceProvider, user_dict_wrapped[cls._FIELD_USER_PAYMENT_SERVER_PROVIDER] ) else: raise BunqException(cls._ERROR_COULD_NOT_DETERMINE_USER) return session_server