diff --git a/CHANGELOG.md b/CHANGELOG.md index ecc6de5..2e74163 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +### v3.14.1 (2025-12-18) +* * * + +### Bug Fixes: +* Fixed an issue where top level array resources for non-list response are not getting parsed correctly. + ### v3.14.0 (2025-11-26) * * * diff --git a/chargebee/responses.py b/chargebee/responses.py index bb23c0e..49a9bd8 100644 --- a/chargebee/responses.py +++ b/chargebee/responses.py @@ -55,21 +55,10 @@ def parse_response(self) -> T: if field_name in self._response: if hasattr(field_type, "__origin__") and field_type.__origin__ == list: list_data = [] - for response in self._response: - data = {} - for inner_name, inner_type in get_type_hints( - field_type.__args__[0] - ).items(): - inner_field_name = inner_name - inner_field_type = inner_type - if inner_field_name in response: - if _is_primitive(inner_field_type): - data[inner_field_name] = response[inner_field_name] - else: - data[inner_field_name] = inner_field_type.construct( - response[inner_field_name] - ) - list_data.append(field_type.__args__[0](**data)) + inner_type = field_type.__args__[0] + for response in self._response[field_name]: + data = inner_type.construct(response) + list_data.append(data) init_data[field_name] = list_data elif _is_primitive(field_type): init_data[field_name] = self._response[field_name] diff --git a/chargebee/version.py b/chargebee/version.py index faf1da0..06136e4 100644 --- a/chargebee/version.py +++ b/chargebee/version.py @@ -1 +1 @@ -VERSION = "3.14.0" +VERSION = "3.14.1"