From 81ff5570ce1868b713cb3e736e2e054ccdbe7827 Mon Sep 17 00:00:00 2001 From: Iulian Masar Date: Thu, 5 Jun 2025 14:14:05 +0300 Subject: [PATCH] handle extended card web payin --- mangopay/resources.py | 26 ++++++++++++++++++++++++++ tests/test_payins.py | 10 +++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/mangopay/resources.py b/mangopay/resources.py index 8bc7dd5..940c9dd 100644 --- a/mangopay/resources.py +++ b/mangopay/resources.py @@ -2800,3 +2800,29 @@ def get(cls, country, currency, *args, **kwargs): kwargs['currency'] = currency select = SelectQuery(PayoutMethod, *args, **kwargs) return select.get("", *args, **kwargs) + + +class ExtendedCardWebPayin(BaseModel): + payment_type = CharField(api_name='PaymentType', choices=constants.PAYIN_PAYMENT_TYPE, default=None) + execution_type = CharField(api_name='ExecutionType', choices=constants.EXECUTION_TYPE_CHOICES, default=None) + expiration_date = CharField(api_name='ExpirationDate') + alias = CharField(api_name='Alias') + card_type = CharField(api_name='CardType', + choices=constants.CARD_TYPE_CHOICES, + default=None) + country = CharField(api_name='Country') + fingerprint = CharField(api_name='Fingerprint') + + class Meta: + verbose_name = 'extended_card_web_payin' + verbose_name_plural = 'extended_card_web_payins' + + url = { + SelectQuery.identifier: '/payins/card/web/%(id)s/extended' + } + + @classmethod + def get(cls, pay_in_id, *args, **kwargs): + kwargs['id'] = pay_in_id + select = SelectQuery(ExtendedCardWebPayin, *args, **kwargs) + return select.get("", *args, **kwargs) diff --git a/tests/test_payins.py b/tests/test_payins.py index c65fe0a..e09d8d6 100644 --- a/tests/test_payins.py +++ b/tests/test_payins.py @@ -9,7 +9,7 @@ RecurringPayInCIT, PayInRefund, RecurringPayInMIT, CardPreAuthorizedDepositPayIn, MbwayPayIn, PayPalWebPayIn, \ GooglePayDirectPayIn, MultibancoPayIn, SatispayPayIn, BlikPayIn, KlarnaPayIn, IdealPayIn, GiropayPayIn, \ CardRegistration, BancontactPayIn, SwishPayIn, PayconiqV2PayIn, TwintPayIn, PayByBankPayIn, RecurringPayPalPayInCIT, \ - RecurringPayPalPayInMIT + RecurringPayPalPayInMIT, ExtendedCardWebPayin from mangopay.utils import (Money, ShippingAddress, Shipping, Billing, Address, SecurityInfo, ApplepayPaymentData, GooglepayPaymentData, DebitedBankAccount, LineItem, CardInfo) from tests import settings @@ -2185,3 +2185,11 @@ def test_PayIns_PayByBankWeb_Create(self): self.assertEqual("WEB", result.execution_type) self.assertEqual("PAY_BY_BANK", result.payment_type) self.assertEqual("PAYIN", result.type) + + def test_get_extended_card_web_payin(self): + payin = BaseTestLive.get_johns_payin() + result = ExtendedCardWebPayin.get(payin.id) + + self.assertIsNotNone(result) + self.assertEqual("WEB", result.execution_type) + self.assertEqual("CARD", result.payment_type)