Skip to content

Commit 7ff2eca

Browse files
authored
Fixed an issue where top level array resources for non-list response … (#105)
* Fixed an issue where top level array resources for non-list response are not getting parsed correctly. * Added unit test for parsing response
1 parent 10e3d14 commit 7ff2eca

File tree

4 files changed

+701
-16
lines changed

4 files changed

+701
-16
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
### v3.14.1 (2025-12-18)
2+
* * *
3+
4+
### Bug Fixes:
5+
* Fixed an issue where top level array resources for non-list response are not getting parsed correctly.
6+
17
### v3.14.0 (2025-11-26)
28
* * *
39

chargebee/responses.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -55,21 +55,10 @@ def parse_response(self) -> T:
5555
if field_name in self._response:
5656
if hasattr(field_type, "__origin__") and field_type.__origin__ == list:
5757
list_data = []
58-
for response in self._response:
59-
data = {}
60-
for inner_name, inner_type in get_type_hints(
61-
field_type.__args__[0]
62-
).items():
63-
inner_field_name = inner_name
64-
inner_field_type = inner_type
65-
if inner_field_name in response:
66-
if _is_primitive(inner_field_type):
67-
data[inner_field_name] = response[inner_field_name]
68-
else:
69-
data[inner_field_name] = inner_field_type.construct(
70-
response[inner_field_name]
71-
)
72-
list_data.append(field_type.__args__[0](**data))
58+
inner_type = field_type.__args__[0]
59+
for response in self._response[field_name]:
60+
data = inner_type.construct(response)
61+
list_data.append(data)
7362
init_data[field_name] = list_data
7463
elif _is_primitive(field_type):
7564
init_data[field_name] = self._response[field_name]

chargebee/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION = "3.14.0"
1+
VERSION = "3.14.1"

0 commit comments

Comments
 (0)