diff --git a/src/viur/shop/payment_providers/amazon_pay.py b/src/viur/shop/payment_providers/amazon_pay.py index 25defab..6cf6ef3 100644 --- a/src/viur/shop/payment_providers/amazon_pay.py +++ b/src/viur/shop/payment_providers/amazon_pay.py @@ -1,10 +1,11 @@ -import typing as t +import typing as t # noqa from viur.core import current, errors, exposed from viur.core.skeleton import SkeletonInstance - +from viur.shop.types import * from . import PaymentProviderAbstract from ..globals import SHOP_LOGGER +from ..skeletons import OrderSkel logger = SHOP_LOGGER.getChild(__name__) @@ -72,8 +73,12 @@ def get_checkout_start_data( "sandbox": self.sandbox, } - def charge(self): - raise errors.NotImplemented() + def charge( + self, + order_skel: SkeletonInstance_T[OrderSkel], + payment: t.Any | None = None, + ) -> tuple[SkeletonInstance_T[OrderSkel], t.Any]: + raise errors.NotImplemented(f"charge method not implemented in {type(self)}") def check_payment_state( self, diff --git a/src/viur/shop/payment_providers/invoice.py b/src/viur/shop/payment_providers/invoice.py index b916773..788bd50 100644 --- a/src/viur/shop/payment_providers/invoice.py +++ b/src/viur/shop/payment_providers/invoice.py @@ -32,7 +32,11 @@ def checkout( order_skel = self._append_payment_to_order_skel(order_skel) return None - def charge(self) -> None: + def charge( + self, + order_skel: SkeletonInstance_T[OrderSkel], + payment: t.Any | None = None, + ) -> tuple[SkeletonInstance_T[OrderSkel], t.Any]: # An invoice cannot be charged, The user has to do this on his own raise IllegalOperationError("An invoice cannot be charged") diff --git a/src/viur/shop/payment_providers/paypal_checkout.py b/src/viur/shop/payment_providers/paypal_checkout.py index 7b15224..1526f67 100644 --- a/src/viur/shop/payment_providers/paypal_checkout.py +++ b/src/viur/shop/payment_providers/paypal_checkout.py @@ -143,8 +143,12 @@ def checkout( return ApiHelper.json_serialize(order.body, should_encode=False) - def charge(self): - raise errors.NotImplemented() + def charge( + self, + order_skel: SkeletonInstance_T[OrderSkel], + payment: t.Any | None = None, + ) -> tuple[SkeletonInstance_T[OrderSkel], t.Any]: + raise errors.NotImplemented(f"charge method not implemented in {type(self)}") def check_payment_state( self, diff --git a/src/viur/shop/payment_providers/prepayment.py b/src/viur/shop/payment_providers/prepayment.py index 0b79553..a53512f 100644 --- a/src/viur/shop/payment_providers/prepayment.py +++ b/src/viur/shop/payment_providers/prepayment.py @@ -36,7 +36,11 @@ def checkout( order_skel = self._append_payment_to_order_skel(order_skel) return None - def charge(self) -> None: + def charge( + self, + order_skel: SkeletonInstance_T[OrderSkel], + payment: t.Any | None = None, + ) -> tuple[SkeletonInstance_T[OrderSkel], t.Any]: # An invoice cannot be charged, The user has to do this on his own raise IllegalOperationError("A prepayment cannot be charged") diff --git a/src/viur/shop/payment_providers/unzer_abstract.py b/src/viur/shop/payment_providers/unzer_abstract.py index afb1a67..0b255bd 100644 --- a/src/viur/shop/payment_providers/unzer_abstract.py +++ b/src/viur/shop/payment_providers/unzer_abstract.py @@ -238,8 +238,12 @@ def can_order( return errs - def charge(self): - raise errors.NotImplemented() + def charge( + self, + order_skel: SkeletonInstance_T[OrderSkel], + payment: t.Any | None = None, + ) -> tuple[SkeletonInstance_T[OrderSkel], t.Any]: + raise errors.NotImplemented(f"charge method not implemented in {type(self)}") def get_order_by_pay_id( self,