Skip to content

Commit 2e95797

Browse files
author
Kevin Hellemun
committed
Fixed json adapter. (#77)
1 parent 00811bc commit 2e95797

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

bunq/sdk/json/adapters.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@
44
from bunq.sdk import client
55
from bunq.sdk import context
66
from bunq.sdk import security
7+
from bunq.sdk.exception import BunqException
78
from bunq.sdk.json import converter
89
from bunq.sdk.model import core
910
from bunq.sdk.model.generated import endpoint
1011
from bunq.sdk.model.generated import object_
11-
from bunq.sdk.exception import BunqException
1212

1313

1414
class AnchoredObjectModelAdapter(converter.JsonAdapter):
15-
1615
_ERROR_MODEL_NOT_FOUND = '{} is not in endpoint nor object.'
1716

1817
_override_field_map = {
1918
'ScheduledPayment': 'SchedulePayment',
2019
'ScheduledInstance': 'ScheduleInstance',
21-
}
20+
}
2221

2322
@classmethod
2423
def deserialize(cls, cls_target, obj_raw):
@@ -31,16 +30,11 @@ def deserialize(cls, cls_target, obj_raw):
3130

3231
model_ = super()._deserialize_default(cls_target, obj_raw)
3332

34-
if isinstance(model_, core.AnchoredObjectInterface) and model_.is_all_field_none():
33+
if isinstance(model_,
34+
core.AnchoredObjectInterface) and model_.is_all_field_none():
3535
for field in model_.__dict__:
36-
field_ = None
37-
if field in cls._override_field_map:
38-
field_ = cls._override_field_map[field]
3936

40-
if field_ is None:
41-
object_class = cls._get_object_class(field)
42-
else:
43-
object_class = cls._get_object_class(field_)
37+
object_class = cls._get_object_class(field)
4438

4539
contents = super()._deserialize_default(object_class, obj_raw)
4640

@@ -62,6 +56,11 @@ def _get_object_class(cls, class_name):
6256
:rtype: core.BunqModel
6357
"""
6458

59+
class_name = class_name.lstrip('_')
60+
61+
if class_name in cls._override_field_map:
62+
class_name = cls._override_field_map[class_name]
63+
6564
try:
6665
return getattr(endpoint, class_name)
6766
except AttributeError:
@@ -486,10 +485,12 @@ def serialize(cls, share_detail):
486485
"""
487486

488487
return {
489-
cls._FIELD_PAYMENT: converter.serialize(share_detail.payment),
490-
cls._FIELD_READ_ONLY: converter.serialize(share_detail.read_only),
488+
cls._FIELD_PAYMENT: converter.serialize(
489+
share_detail._payment_field_for_request),
490+
cls._FIELD_READ_ONLY: converter.serialize(
491+
share_detail._read_only_field_for_request),
491492
cls._FIELD_DRAFT_PAYMENT: converter.serialize(
492-
share_detail.draft_payment
493+
share_detail._draft_payment
493494
),
494495
}
495496

@@ -621,4 +622,4 @@ def serialize(cls, pagination):
621622

622623
_ = pagination
623624

624-
raise NotImplementedError()
625+
raise NotImplementedError()

0 commit comments

Comments
 (0)