summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMS <ms@taler.net>2020-07-23 15:51:20 +0200
committerMS <ms@taler.net>2020-07-23 15:51:20 +0200
commita3e6faefa6a254a757dda08a3e876da388ad9f8e (patch)
tree0a677e9e96cf036c42ef258a7c0a2e92d1f08b63
parente9d95eac46687dfea140e2c81bf1dc4270c9976e (diff)
downloadtaler-merchant-demos-a3e6faefa6a254a757dda08a3e876da388ad9f8e.tar.gz
taler-merchant-demos-a3e6faefa6a254a757dda08a3e876da388ad9f8e.tar.bz2
taler-merchant-demos-a3e6faefa6a254a757dda08a3e876da388ad9f8e.zip
lint donations and survey
-rw-r--r--talermerchantdemos/donations/donations.py43
-rw-r--r--talermerchantdemos/survey/survey.py20
2 files changed, 32 insertions, 31 deletions
diff --git a/talermerchantdemos/donations/donations.py b/talermerchantdemos/donations/donations.py
index 08b4cfe..4acb8c5 100644
--- a/talermerchantdemos/donations/donations.py
+++ b/talermerchantdemos/donations/donations.py
@@ -18,21 +18,18 @@
# @brief Implementation of a donations site.
import base64
-import flask
import logging
+import flask
import lxml.etree
import os
import qrcode
import qrcode.image.svg
-import random
-import requests
import time
import traceback
import urllib
-import uuid
from taler.util.talerconfig import TalerConfig
-from urllib.parse import urljoin, parse_qsl
-from .httpcommon import backend_post, backend_get
+from urllib.parse import urljoin
+from ..httpcommon import backend_post, backend_get
LOGGER = logging.getLogger(__name__)
@@ -94,7 +91,7 @@ def backend_instanced_get(instance, endpoint, params):
# @return the backend response (JSON format).
def backend_instanced_post(instance, endpoint, json):
backend_url = urljoin(BACKEND_BASE_URL, f"instances/{instance}/")
- return backend_post(backend_url, endpoint, params)
+ return backend_post(backend_url, endpoint, json)
##
# Inspect GET arguments in the look for a parameter.
@@ -253,21 +250,17 @@ def fulfillment(receiver):
order_id=order_id,
currency=CURRENCY
)
- else:
- taler_pay_uri = pay_status["taler_pay_uri"]
- qrcode_svg = get_qrcode_svg(taler_pay_uri)
- check_status_url_enc = urllib.parse.quote(
- flask.url_for("check_status", instance=receiver, order_id=order_id)
- )
- content = flask.render_template(
- "templates/request_payment.html",
- taler_pay_uri=taler_pay_uri,
- qrcode_svg=qrcode_svg,
- check_status_url_enc=check_status_url_enc
- )
- headers = {"Taler": taler_pay_uri}
- resp = flask.Response(content, status=402, headers=headers)
- return resp
-
- # no pay_redirect but article not paid, this should never happen!
- err_abort(500, message="Internal error, invariant failed", json=pay_status)
+ taler_pay_uri = pay_status["taler_pay_uri"]
+ qrcode_svg = get_qrcode_svg(taler_pay_uri)
+ check_status_url_enc = urllib.parse.quote(
+ flask.url_for("check_status", instance=receiver, order_id=order_id)
+ )
+ content = flask.render_template(
+ "templates/request_payment.html",
+ taler_pay_uri=taler_pay_uri,
+ qrcode_svg=qrcode_svg,
+ check_status_url_enc=check_status_url_enc
+ )
+ headers = {"Taler": taler_pay_uri}
+ resp = flask.Response(content, status=402, headers=headers)
+ return resp
diff --git a/talermerchantdemos/survey/survey.py b/talermerchantdemos/survey/survey.py
index 0f24a16..52e4ede 100644
--- a/talermerchantdemos/survey/survey.py
+++ b/talermerchantdemos/survey/survey.py
@@ -21,15 +21,14 @@ import re
import datetime
import base64
import logging
-import json
from urllib.parse import urljoin
import flask
-import requests
import traceback
import qrcode
import qrcode.image.svg
import lxml.etree
from taler.util.talerconfig import TalerConfig
+from ..httpcommon import backend_get, backend_post
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
app = flask.Flask(__name__, template_folder=BASE_DIR)
@@ -101,7 +100,7 @@ def favicon():
# in a prettified format.
@app.route("/survey-stats", methods=["GET"])
def survey_stats():
- stats = backend_get(INSTANCED_URL, "tip-query")
+ stats = backend_get(INSTANCED_URL, "tip-query", params=dict())
return flask.render_template("templates/survey_stats.html", stats=stats)
@@ -110,6 +109,14 @@ def get_qrcode_svg(data):
img = qrcode.make(data, image_factory=factory)
return lxml.etree.tostring(img.get_image()).decode("utf-8")
+##
+# Return a error response to the client.
+#
+# @param abort_status_code status code to return along the response.
+# @param params _kw_ arguments to passed verbatim to the templating engine.
+def err_abort(abort_status_code, **params):
+ t = flask.render_template("templates/error.html", **params)
+ flask.abort(flask.make_response(t, abort_status_code))
##
# Tell the backend to 'authorize' a tip; this means that
@@ -127,7 +134,6 @@ def submit_survey():
justification="Payment methods survey"
)
backend_resp = backend_post(INSTANCED_URL, "tip-authorize", tip_spec)
-
taler_tip_uri = backend_resp.get("taler_tip_uri")
if taler_tip_uri:
qrcode_svg = get_qrcode_svg(taler_tip_uri)
@@ -139,8 +145,10 @@ def submit_survey():
headers = {"Taler": taler_tip_uri}
return flask.Response(content, status=402, headers=headers)
- err_abort(
- 500, message="Tipping failed, unexpected backend response", json=resp
+ return err_abort(
+ 500,
+ message="Tipping failed, unexpected backend response",
+ json=backend_resp
)