Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion openfga_sdk/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ async def __call_api(

# header parameters
header_params = header_params or {}
header_params.update(self.default_headers)
# Merge headers with custom headers taking precedence over defaults
merged_headers = self.default_headers.copy()
merged_headers.update(header_params)
header_params = merged_headers
if self.cookie:
header_params["Cookie"] = self.cookie
if header_params:
Expand Down
7 changes: 6 additions & 1 deletion openfga_sdk/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,12 @@ def options_to_kwargs(
if options.get("continuation_token"):
kwargs["continuation_token"] = options["continuation_token"]
if options.get("headers"):
kwargs["_headers"] = options["headers"]
headers = options["headers"]
if isinstance(headers, dict):
kwargs["_headers"] = headers
else:
# Invalid headers type - skip it gracefully
pass
if options.get("retry_params"):
kwargs["_retry_params"] = options["retry_params"]
return kwargs
Expand Down
7 changes: 5 additions & 2 deletions openfga_sdk/sync/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,10 @@ def __call_api(

# header parameters
header_params = header_params or {}
header_params.update(self.default_headers)
# Merge headers with custom headers taking precedence over defaults
merged_headers = self.default_headers.copy()
merged_headers.update(header_params)
header_params = merged_headers
if self.cookie:
header_params["Cookie"] = self.cookie
if header_params:
Expand Down Expand Up @@ -395,7 +398,7 @@ def __call_api(
if content_type is not None:
match = re.search(r"charset=([a-zA-Z\-\d]+)[\s\;]?", content_type)
encoding = match.group(1) if match else "utf-8"
if response_data.data is not None:
if response_data.data is not None and isinstance(response_data.data, bytes):
response_data.data = response_data.data.decode(encoding)

# deserialize response data
Expand Down
7 changes: 6 additions & 1 deletion openfga_sdk/sync/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,12 @@ def options_to_kwargs(
if options.get("continuation_token"):
kwargs["continuation_token"] = options["continuation_token"]
if options.get("headers"):
kwargs["_headers"] = options["headers"]
headers = options["headers"]
if isinstance(headers, dict):
kwargs["_headers"] = headers
else:
# Invalid headers type - skip it gracefully
pass
if options.get("retry_params"):
kwargs["_retry_params"] = options["retry_params"]
return kwargs
Expand Down
Loading
Loading