gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-bank] branch master updated: abstracting exceptions raising


From: gnunet
Subject: [taler-bank] branch master updated: abstracting exceptions raising
Date: Fri, 29 Nov 2019 16:58:08 +0100

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new 2586131  abstracting exceptions raising
2586131 is described below

commit 258613121ae37015f007b285a5b82af4f09e0db2
Author: Marcello Stanisci <address@hidden>
AuthorDate: Fri Nov 29 16:55:20 2019 +0100

    abstracting exceptions raising
---
 talerbank/app/schemas.py | 38 ++++++++++++++++++++++++++------------
 talerbank/app/views.py   |  8 +++-----
 2 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/talerbank/app/schemas.py b/talerbank/app/schemas.py
index c3524fa..ed3eb83 100644
--- a/talerbank/app/schemas.py
+++ b/talerbank/app/schemas.py
@@ -126,18 +126,32 @@ class RejectData(forms.Form):
     account_number = forms.IntegerField()
 
 
-class AddIncomingData(forms.Form):
-    auth = AuthField()
-    amount = forms.CharField(
-        validators=[
-            RegexValidator(
-                AMOUNT_REGEX, message="Format CURRENCY:X[.Y] not respected"
-            )
-        ]
-    )
-    subject = forms.CharField()
-    credit_account = forms.IntegerField(min_value=1)
-    exchange_url = forms.URLField()
+class AddIncomingData():
+
+    def __init__(self, data):
+        self.inner_form = self.InnerForm(data)
+        if not self.inner_form.is_valid():
+            JSONFieldException(data.errors, 400)
+
+    def get(self, name):
+        ret = self.inner_form.cleaned_data.get(name) 
+            # rare / impossible
+        if not ret:
+            raise JSONFieldException(data.errors, 400)
+        return ret
+
+    class InnerForm(forms.Form):
+        auth = AuthField()
+        amount = forms.CharField(
+            validators=[
+                RegexValidator(
+                    AMOUNT_REGEX, message="Format CURRENCY:X[.Y] not respected"
+                )
+            ]
+        )
+        subject = forms.CharField()
+        credit_account = forms.IntegerField(min_value=1)
+        exchange_url = forms.URLField()
 
 
 ##
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 9186837..c97d86b 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -878,19 +878,17 @@ def reject(request, user_account):
 def add_incoming(request, user_account):
 
     data = AddIncomingData(json.loads(decode_body(request)))
-    if not data.is_valid():
-        raise JSONFieldException(data.errors, 400)
 
     subject = "%s %s" % (
-        data.cleaned_data["subject"], data.cleaned_data["exchange_url"]
+        data.get("subject"), data.get("exchange_url")
     )
 
     credit_account = BankAccount.objects.get(
-        account_no=data.cleaned_data["credit_account"]
+        account_no=data.get("credit_account")
     )
 
     wtrans = wire_transfer(
-        Amount.parse(data.cleaned_data["amount"]), user_account.bankaccount,
+        Amount.parse(data.get("amount")), user_account.bankaccount,
         credit_account, subject
     )
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]