summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-01-29 19:25:58 +0100
committerChristian Grothoff <christian@grothoff.org>2021-01-29 19:25:58 +0100
commit589c8383153b57860c76336a4c35ed9975e8e9e5 (patch)
tree7b954805175baf2e3cdf803055a83843e4ee4ad3
parent95cd26305979cb765751fd7bdfe6c61f3972fc0e (diff)
downloadbank-589c8383153b57860c76336a4c35ed9975e8e9e5.tar.gz
bank-589c8383153b57860c76336a4c35ed9975e8e9e5.tar.bz2
bank-589c8383153b57860c76336a4c35ed9975e8e9e5.zip
move PaytoParse logic into taler-util (#6650)
-rw-r--r--pyproject.toml2
-rw-r--r--talerbank/app/management/commands/wire_transfer_payto.py3
m---------talerbank/app/static/web-common0
-rw-r--r--talerbank/app/tests.py3
-rw-r--r--talerbank/app/views.py22
5 files changed, 6 insertions, 24 deletions
diff --git a/pyproject.toml b/pyproject.toml
index 044dc8f..b06acc2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -8,7 +8,7 @@ license = "GPL-3.0-or-later"
[tool.poetry.dependencies]
python = "^3.8"
django = "^3.1.3"
-taler-util = "^0.8.1"
+taler-util = "^0.8.2"
lxml = "^4.6.1"
psycopg2 = "^2.8.6"
jinja2 = "^2.11.2"
diff --git a/talerbank/app/management/commands/wire_transfer_payto.py b/talerbank/app/management/commands/wire_transfer_payto.py
index 460235c..3b7b3a8 100644
--- a/talerbank/app/management/commands/wire_transfer_payto.py
+++ b/talerbank/app/management/commands/wire_transfer_payto.py
@@ -25,7 +25,8 @@ import json
from django.core.management.base import BaseCommand
from django.contrib.auth import authenticate
from taler.util.amount import Amount, AmountFormatError
-from ...views import wire_transfer, User, PaytoParse, PaytoFormatError
+from taler.util.payto import PaytoParse, PaytoFormatError
+from ...views import wire_transfer, User
from ...models import BankAccount, BankTransaction
LOGGER = logging.getLogger(__name__)
diff --git a/talerbank/app/static/web-common b/talerbank/app/static/web-common
-Subproject eaefc57f2ea5434ad6b7f1c11ee4daa0fc92c76
+Subproject 2457613ecc8b8971bd47119b1a02a2f290bb483
diff --git a/talerbank/app/tests.py b/talerbank/app/tests.py
index a3df49d..d65ce77 100644
--- a/talerbank/app/tests.py
+++ b/talerbank/app/tests.py
@@ -34,7 +34,8 @@ from django.contrib.auth.models import User
from mock import patch, MagicMock
from .models import BankAccount, BankTransaction, TalerWithdrawOperation
from . import urls
-from .views import wire_transfer, get_reserve_pub, PaytoParse, PaytoFormatError
+from .views import wire_transfer, get_reserve_pub
+from taler.util.payto import PaytoParse, PaytoFormatError
from taler.util.amount import (
Amount,
SignedAmount,
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 7177d7f..0c92362 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -49,6 +49,7 @@ from django.core.exceptions import ObjectDoesNotExist
from datetime import datetime
from .models import BankAccount, BankTransaction, TalerWithdrawOperation
from taler.util.amount import Amount, SignedAmount
+from taler.util.payto import PaytoParse
from taler.util.taler_error_codes import ErrorCode
from http import HTTPStatus
@@ -99,27 +100,6 @@ def allow_origin_star(view_func):
return wraps(view_func)(_decorator)
-class PaytoFormatError(Exception):
- def __init__(self, msg):
- super(PaytoFormatError, self).__init__(msg)
- self.msg = msg
-
-class PaytoParse:
- def __init__(self, payto_uri):
- obj = urlparse(payto_uri)
- path = obj.path.split("/")
- if obj.scheme != "payto" or \
- len(path) != 3 or \
- not obj.netloc or \
- not re.match("^payto://", payto_uri):
- raise PaytoFormatError(f"Bad Payto URI: {payto_uri}")
- self.target = path.pop()
- self.bank = path.pop()
- self.authority = obj.netloc
- params = dict(parse_qsl(obj.query))
- self.message = params.get("message")
- self.amount = Amount.parse(params.get("amount")) if "amount" in params else None
-
##
# Exception raised upon failing login.
#