Skip to content

Commit 181b5a6

Browse files
Update hook
1 parent c9a5a06 commit 181b5a6

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

src/mollie/_hooks/mollie_hooks.py

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import uuid
2+
import sys
23

34
from httpx import Request
45
from typing import Union
@@ -27,14 +28,14 @@ def before_request(self, hook_ctx: BeforeRequestContext, request: Request) -> Un
2728
:param request: The HTTP request to modify.
2829
:return: The modified request or an exception.
2930
"""
30-
idempotency_key = "idempotency-key"
31-
3231
# Create a copy of the headers
3332
headers = dict(request.headers or {})
3433

3534
# Add the idempotency key if it doesn't already exist
36-
if idempotency_key not in headers or not headers[idempotency_key]:
37-
headers[idempotency_key] = generate_idempotency_key()
35+
headers = self._handle_idempotency_key(headers)
36+
37+
# Customize the User Agent header
38+
headers = self._customize_user_agent(headers, hook_ctx)
3839

3940
return Request(
4041
method = request.method,
@@ -43,3 +44,25 @@ def before_request(self, hook_ctx: BeforeRequestContext, request: Request) -> Un
4344
content = request.content,
4445
extensions=request.extensions
4546
)
47+
48+
def _handle_idempotency_key(self, headers: dict) -> dict:
49+
idempotency_key = "idempotency-key"
50+
if idempotency_key not in headers or not headers[idempotency_key]:
51+
headers[idempotency_key] = generate_idempotency_key()
52+
return headers
53+
54+
def _customize_user_agent(self, headers: dict, hook_ctx: BeforeRequestContext) -> dict:
55+
user_agent_key = "user-agent"
56+
57+
gen_version = hook_ctx.config.gen_version
58+
sdk_version = hook_ctx.config.sdk_version
59+
python_version = sys.version.split(" ", maxsplit=1)[0]
60+
package_name = "mollie-api-python-beta"
61+
62+
new_user_agent = f"Speakeasy/{gen_version} Python/{python_version} {package_name}/{sdk_version}"
63+
if hook_ctx.config.globals.custom_user_agent:
64+
new_user_agent = f"{new_user_agent} {hook_ctx.config.globals.custom_user_agent}"
65+
66+
headers[user_agent_key] = new_user_agent
67+
68+
return headers

0 commit comments

Comments
 (0)