summaryrefslogtreecommitdiff
path: root/talerbank/app/schemas.py
diff options
context:
space:
mode:
Diffstat (limited to 'talerbank/app/schemas.py')
-rw-r--r--talerbank/app/schemas.py38
1 files changed, 26 insertions, 12 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()
##