From e3e31943888c24be41c22862a88efc0ce25ddd28 Mon Sep 17 00:00:00 2001 From: Avni BALIKCI Date: Tue, 8 Sep 2026 16:15:26 +0300 Subject: [PATCH] Add generate masterpass account token client adapter --- craftgate/adapter/masterpass_payment_adapter.py | 15 +++++++++++++++ .../masterpass_account_token_generate_request.py | 13 +++++++++++++ .../masterpass_account_token_generate_response.py | 9 +++++++++ 3 files changed, 37 insertions(+) create mode 100644 craftgate/request/masterpass_account_token_generate_request.py create mode 100644 craftgate/response/masterpass_account_token_generate_response.py diff --git a/craftgate/adapter/masterpass_payment_adapter.py b/craftgate/adapter/masterpass_payment_adapter.py index 5a32d1c..4065b28 100644 --- a/craftgate/adapter/masterpass_payment_adapter.py +++ b/craftgate/adapter/masterpass_payment_adapter.py @@ -1,6 +1,7 @@ from craftgate.adapter.base_adapter import BaseAdapter from craftgate.net.base_http_client import BaseHttpClient from craftgate.request.check_masterpass_user_request import CheckMasterpassUserRequest +from craftgate.request.masterpass_account_token_generate_request import MasterpassAccountTokenGenerateRequest from craftgate.request.masterpass_payment_complete_request import MasterpassPaymentCompleteRequest from craftgate.request.masterpass_payment_threeds_complete_request import MasterpassPaymentThreeDSCompleteRequest from craftgate.request.masterpass_payment_threeds_init_request import MasterpassPaymentThreeDSInitRequest @@ -8,6 +9,7 @@ from craftgate.request.masterpass_retrieve_loyalties_request import MasterpassRetrieveLoyaltiesRequest from craftgate.request_options import RequestOptions from craftgate.response.check_masterpass_user_response import CheckMasterpassUserResponse +from craftgate.response.masterpass_account_token_generate_response import MasterpassAccountTokenGenerateResponse from craftgate.response.masterpass_payment_threeds_init_response import MasterpassPaymentThreeDSInitResponse from craftgate.response.masterpass_payment_token_generate_response import MasterpassPaymentTokenGenerateResponse from craftgate.response.payment_response import PaymentResponse @@ -43,6 +45,19 @@ def generate_masterpass_payment_token( response_type=MasterpassPaymentTokenGenerateResponse ) + def generate_masterpass_account_token( + self, request: MasterpassAccountTokenGenerateRequest + ) -> MasterpassAccountTokenGenerateResponse: + path = "/payment/v2/masterpass-accounts/generate-token" + headers = self._create_headers(request, path) + return self._http_client.request( + method="POST", + url=self.request_options.base_url + path, + headers=headers, + body=request, + response_type=MasterpassAccountTokenGenerateResponse + ) + def complete_masterpass_payment(self, request: MasterpassPaymentCompleteRequest) -> PaymentResponse: path = "/payment/v2/masterpass-payments/complete" headers = self._create_headers(request, path) diff --git a/craftgate/request/masterpass_account_token_generate_request.py b/craftgate/request/masterpass_account_token_generate_request.py new file mode 100644 index 0000000..1672387 --- /dev/null +++ b/craftgate/request/masterpass_account_token_generate_request.py @@ -0,0 +1,13 @@ +from typing import Optional + +from craftgate.request.common.base_request import BaseRequest + + +class MasterpassAccountTokenGenerateRequest(BaseRequest): + def __init__( + self, + msisdn: Optional[str] = None, + user_id: Optional[str] = None + ) -> None: + self.msisdn = msisdn + self.user_id = user_id diff --git a/craftgate/response/masterpass_account_token_generate_response.py b/craftgate/response/masterpass_account_token_generate_response.py new file mode 100644 index 0000000..c3f145d --- /dev/null +++ b/craftgate/response/masterpass_account_token_generate_response.py @@ -0,0 +1,9 @@ +from typing import Optional + + +class MasterpassAccountTokenGenerateResponse(object): + def __init__( + self, + token: Optional[str] = None + ) -> None: + self.token = token