4
4
from bunq .sdk import client
5
5
from bunq .sdk import context
6
6
from bunq .sdk import security
7
+ from bunq .sdk .exception import BunqException
7
8
from bunq .sdk .json import converter
8
9
from bunq .sdk .model import core
9
10
from bunq .sdk .model .generated import endpoint
10
11
from bunq .sdk .model .generated import object_
11
- from bunq .sdk .exception import BunqException
12
12
13
13
14
14
class AnchoredObjectModelAdapter (converter .JsonAdapter ):
15
-
16
15
_ERROR_MODEL_NOT_FOUND = '{} is not in endpoint nor object.'
17
16
18
17
_override_field_map = {
19
18
'ScheduledPayment' : 'SchedulePayment' ,
20
19
'ScheduledInstance' : 'ScheduleInstance' ,
21
- }
20
+ }
22
21
23
22
@classmethod
24
23
def deserialize (cls , cls_target , obj_raw ):
@@ -31,16 +30,11 @@ def deserialize(cls, cls_target, obj_raw):
31
30
32
31
model_ = super ()._deserialize_default (cls_target , obj_raw )
33
32
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 ():
35
35
for field in model_ .__dict__ :
36
- field_ = None
37
- if field in cls ._override_field_map :
38
- field_ = cls ._override_field_map [field ]
39
36
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 )
44
38
45
39
contents = super ()._deserialize_default (object_class , obj_raw )
46
40
@@ -62,6 +56,11 @@ def _get_object_class(cls, class_name):
62
56
:rtype: core.BunqModel
63
57
"""
64
58
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
+
65
64
try :
66
65
return getattr (endpoint , class_name )
67
66
except AttributeError :
@@ -486,10 +485,12 @@ def serialize(cls, share_detail):
486
485
"""
487
486
488
487
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 ),
491
492
cls ._FIELD_DRAFT_PAYMENT : converter .serialize (
492
- share_detail .draft_payment
493
+ share_detail ._draft_payment
493
494
),
494
495
}
495
496
@@ -621,4 +622,4 @@ def serialize(cls, pagination):
621
622
622
623
_ = pagination
623
624
624
- raise NotImplementedError ()
625
+ raise NotImplementedError ()
0 commit comments