From aa8716ae3f98f8782141abe6869dfbb90af98b62 Mon Sep 17 00:00:00 2001 From: Abdulaziz Alshetwi Date: Wed, 15 Jul 2020 13:29:48 +0300 Subject: [PATCH] Add applepay and stcpay sources (#13) * Support ApplePay and STCPay * update packages * update version --- moyasar/payment.py | 36 ++++++++++++++++-------------------- moyasar/resource.py | 2 +- requirements.txt | 6 +++--- setup.py | 5 +++-- tests/moyasar_test.py | 1 - 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/moyasar/payment.py b/moyasar/payment.py index d05dfaf..591dc33 100644 --- a/moyasar/payment.py +++ b/moyasar/payment.py @@ -4,42 +4,38 @@ from moyasar.actions.refund import Refund from moyasar.actions.capture import Capture from moyasar.actions.void import Void -from moyasar.helpers import Constructor -from moyasar.helpers import Format +from moyasar.helpers import Constructor, Format class Source(Constructor, Format): - @classmethod def build(cls, source): - if source['type'] == "creditcard": - source = Source.source_to_creditcard(source) - else: - source = Source.source_to_sadad(source) - return source - - @classmethod - def source_to_creditcard(cls, data): - data.pop('type') - return CreditCard(data) - - @classmethod - def source_to_sadad(cls, data): - data.pop('type') - return Sadad(data) + source_klass = sources[source.pop('type')] + return source_klass(source) class CreditCard(Source): def __str__(self): return json.dumps(self.__dict__) - class Sadad(Source): pass +class ApplePay(Source): + pass -class Payment(Resource, Refund, Capture, Void, Format): +class STCPay(Source): + pass +sources = { + 'creditcard': CreditCard, + 'sadad': Sadad, + 'applepay': ApplePay, + 'stcpay': STCPay, +} + + +class Payment(Resource, Refund, Capture, Void, Format): def __init__(self, data): super().__init__(data) self.source = Source.build(self.source) diff --git a/moyasar/resource.py b/moyasar/resource.py index a27b81d..1ff3566 100644 --- a/moyasar/resource.py +++ b/moyasar/resource.py @@ -4,4 +4,4 @@ class Resource(Fetch, List, Update): - pass \ No newline at end of file + pass diff --git a/requirements.txt b/requirements.txt index 0e55980..f60b1e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ idna==2.8 isort==4.3.4 jsonrpclib==0.1.7 lazy-object-proxy==1.3.1 -markdown2==2.3.7 +markdown2==2.3.9 mccabe==0.6.1 more-itertools==6.0.0 pbr==5.1.2 @@ -23,10 +23,10 @@ py-bcrypt==0.4 Pygments==2.3.1 pytest==4.3.0 PyYAML==4.2b1 -requests==2.21.0 +requests==2.24.0 six==1.12.0 smmap2==2.0.5 stevedore==1.30.0 tornado==4.3 -urllib3==1.24.2 +urllib3==1.25.7 wrapt==1.11.1 diff --git a/setup.py b/setup.py index 2903773..5dede80 100644 --- a/setup.py +++ b/setup.py @@ -2,9 +2,10 @@ with open("README.rst", "r") as fh: long_description = fh.read() + setuptools.setup( name="moyasar", - version="0.6.5", + version="0.7.0", author="Moyasar", author_email="developers@moyasar.com", description="Moyasar Python language wrapper", @@ -24,5 +25,5 @@ 'httpretty', 'pytest' ], - download_url='https://github.com/moyasar/moyasar-python/archive/v0.6.1.tar.gz' + download_url="https://github.com/moyasar/moyasar-python/archive/v{0}.tar.gz".format(version) ) diff --git a/tests/moyasar_test.py b/tests/moyasar_test.py index 36a79b8..2c5815c 100644 --- a/tests/moyasar_test.py +++ b/tests/moyasar_test.py @@ -6,7 +6,6 @@ def test_that_it_has_a_version_number(): assert moyasar.api_version is not '' - def test_should_accept_api_key(): moyasar.api_key = 'sk_test_BQokikJOvBiI2HlWgH4olfQ2' assert moyasar.api_key is not ''