@@ -17,11 +17,13 @@ def __init__(self, api_key: str, base_url: str = "https://api.keymint.dev"):
1717 'Content-Type' : 'application/json'
1818 }
1919
20- def _handle_request (self , method : str , endpoint : str , params : dict | None = None , query_params : dict | None = None , idempotency_key : str | None = None ):
20+ def _handle_request (self , method : str , endpoint : str , params : dict | None = None , query_params : dict | None = None , idempotency_key : str | None = None , extra_headers : dict | None = None ):
2121 url = f'{ self .base_url } { endpoint } '
2222 headers = self .headers .copy ()
2323 if idempotency_key :
2424 headers ['Idempotency-Key' ] = idempotency_key
25+ if extra_headers :
26+ headers .update (extra_headers )
2527
2628 try :
2729 if method .upper () == 'GET' :
@@ -42,8 +44,9 @@ def _handle_request(self, method: str, endpoint: str, params: dict | None = None
4244 except requests .exceptions .HTTPError as http_err :
4345 try :
4446 error_data = http_err .response .json ()
47+ nested_error = error_data .get ('error' ) if isinstance (error_data .get ('error' ), dict ) else {}
4548 raise KeyMintApiError (
46- message = error_data .get ('message' , ' An API error occurred') ,
49+ message = error_data .get ('message' ) or nested_error . get ( 'message' ) or ' An API error occurred' ,
4750 code = error_data .get ('code' , - 1 ),
4851 status = http_err .response .status_code
4952 )
@@ -123,10 +126,12 @@ def get_key(self, params: GetKeyParams) -> GetKeyResponse:
123126 :returns: The license key details.
124127 """
125128 query_params = {
126- 'productId' : params ['productId' ],
127- 'licenseKey' : params ['licenseKey' ]
129+ 'productId' : params ['productId' ]
128130 }
129- return self ._handle_request ('GET' , '/key' , query_params = query_params )
131+ return self ._handle_request (
132+ 'GET' , '/key' , query_params = query_params ,
133+ extra_headers = {'x-license-key' : params ['licenseKey' ]}
134+ )
130135
131136 def block_key (self , params : BlockKeyParams , idempotency_key : str | None = None ) -> BlockKeyResponse :
132137 """
@@ -288,4 +293,3 @@ def verify_webhook_signature(payload: str, header: str, secret: str, tolerance_s
288293 except Exception :
289294 return False
290295
291-
0 commit comments