diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-01-29 19:25:58 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-01-29 19:25:58 +0100 |
commit | 589c8383153b57860c76336a4c35ed9975e8e9e5 (patch) | |
tree | 7b954805175baf2e3cdf803055a83843e4ee4ad3 | |
parent | 95cd26305979cb765751fd7bdfe6c61f3972fc0e (diff) | |
download | bank-589c8383153b57860c76336a4c35ed9975e8e9e5.tar.gz bank-589c8383153b57860c76336a4c35ed9975e8e9e5.tar.bz2 bank-589c8383153b57860c76336a4c35ed9975e8e9e5.zip |
move PaytoParse logic into taler-util (#6650)
-rw-r--r-- | pyproject.toml | 2 | ||||
-rw-r--r-- | talerbank/app/management/commands/wire_transfer_payto.py | 3 | ||||
m--------- | talerbank/app/static/web-common | 0 | ||||
-rw-r--r-- | talerbank/app/tests.py | 3 | ||||
-rw-r--r-- | talerbank/app/views.py | 22 |
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. # |