From 8e1b470b6cb7c580f78d3d9066afb0674ba2bf96 Mon Sep 17 00:00:00 2001 From: Aditya Ghidora Date: Sat, 30 Aug 2025 14:25:52 +0530 Subject: [PATCH] fix: Correct response model for create entitlement Updated the response model for create entitlement route. Also added logic to conditionally set result params in parse_list_response. --- chargebee/models/entitlement/responses.py | 2 +- chargebee/responses.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/chargebee/models/entitlement/responses.py b/chargebee/models/entitlement/responses.py index 68cc51a..27b4364 100644 --- a/chargebee/models/entitlement/responses.py +++ b/chargebee/models/entitlement/responses.py @@ -30,4 +30,4 @@ class ListResponse(Response): @dataclass class CreateResponse(Response): is_idempotency_replayed: bool - entitlement: EntitlementResponse + list: List[ListEntitlementResponse] diff --git a/chargebee/responses.py b/chargebee/responses.py index 6b8767f..98ff3f3 100644 --- a/chargebee/responses.py +++ b/chargebee/responses.py @@ -94,6 +94,9 @@ def parse_list_response(self) -> T: field_name = name field_type = type + if field_name == "is_idempotency_replayed": + result["is_idempotency_replayed"] = self.is_idempotency_replayed() + if hasattr(field_type, "__origin__") and field_type.__origin__ == list: list_data = [] for response in self._response: @@ -118,7 +121,10 @@ def parse_list_response(self) -> T: list_data.append(field_type.__args__[0](**data)) result[field_name] = list_data - result["next_offset"] = self._next_offset result["headers"] = self._response_header result["http_status_code"] = self._response_status_code + + if hasattr(self._response_type, 'next_offset'): + result["next_offset"] = self._next_offset + return self._response_type(**result)