summaryrefslogtreecommitdiff
path: root/talerdonations/donations
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-29 19:01:43 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-29 19:03:25 +0200
commit455755737e6dcb7f938f7e6f9672bfc3e38f0a73 (patch)
tree8b00b06440a344decdc1136dc2c6f3b3e4b6a18e /talerdonations/donations
parentea2a0c9dbe52c4a4922ee1e9a22b97b9024822a8 (diff)
downloaddonations-455755737e6dcb7f938f7e6f9672bfc3e38f0a73.tar.gz
donations-455755737e6dcb7f938f7e6f9672bfc3e38f0a73.tar.bz2
donations-455755737e6dcb7f938f7e6f9672bfc3e38f0a73.zip
yapf style file
Diffstat (limited to 'talerdonations/donations')
-rw-r--r--talerdonations/donations/donations.py76
1 files changed, 45 insertions, 31 deletions
diff --git a/talerdonations/donations/donations.py b/talerdonations/donations/donations.py
index f0f97c5..5655734 100644
--- a/talerdonations/donations/donations.py
+++ b/talerdonations/donations/donations.py
@@ -53,6 +53,7 @@ app.config.from_object(__name__)
def utility_processor():
def env(name, default=None):
return os.environ.get(name, default)
+
return dict(env=env)
@@ -76,7 +77,9 @@ def err_abort(abort_status_code, **params):
def backend_get(endpoint, params):
headers = {"Authorization": "ApiKey " + APIKEY}
try:
- resp = requests.get(urljoin(BACKEND_URL, endpoint), params=params, headers=headers)
+ resp = requests.get(urljoin(BACKEND_URL, endpoint),
+ params=params,
+ headers=headers)
except requests.ConnectionError:
err_abort(500, message="Could not establish connection to backend")
try:
@@ -84,8 +87,10 @@ def backend_get(endpoint, params):
except ValueError:
err_abort(500, message="Could not parse response from backend")
if resp.status_code != 200:
- err_abort(500, message="Backend returned error status",
- json=response_json, status_code=resp.status_code)
+ err_abort(500,
+ message="Backend returned error status",
+ json=response_json,
+ status_code=resp.status_code)
return response_json
@@ -100,21 +105,25 @@ def backend_get(endpoint, params):
def backend_post(endpoint, json):
headers = {"Authorization": "ApiKey " + APIKEY}
try:
- resp = requests.post(urljoin(BACKEND_URL, endpoint), json=json, headers=headers)
+ resp = requests.post(urljoin(BACKEND_URL, endpoint),
+ json=json,
+ headers=headers)
except requests.ConnectionError:
err_abort(500, message="Could not establish connection to backend")
try:
response_json = resp.json()
except ValueError:
- err_abort(500, message="Could not parse response from backend",
+ err_abort(500,
+ message="Could not parse response from backend",
status_code=resp.status_code)
if resp.status_code != 200:
- err_abort(500, message="Backend returned error status",
- json=response_json, status_code=resp.status_code)
+ err_abort(500,
+ message="Backend returned error status",
+ json=response_json,
+ status_code=resp.status_code)
return response_json
-
##
# Inspect GET arguments in the look for a parameter.
#
@@ -126,6 +135,7 @@ def expect_parameter(name):
return err_abort(400, message="parameter '{}' required".format(name))
return val
+
##
# "Fallback" exception handler to capture all the unmanaged errors.
#
@@ -138,13 +148,16 @@ def internal_error(e):
message="Internal error",
stack=traceback.format_exc())
+
##
# Serve the main index page.
#
# @return response object of the index page.
@app.route("/")
def index():
- return flask.render_template("templates/index.html", merchant_currency=CURRENCY)
+ return flask.render_template("templates/index.html",
+ merchant_currency=CURRENCY)
+
##
# Serve the "/javascript" page.
@@ -155,7 +168,6 @@ def javascript_licensing():
return flask.render_template("templates/javascript.html")
-
##
# Serve the "/checkout" page. This page lets the
# user pick the payment method they want to use,
@@ -167,12 +179,11 @@ def checkout():
amount = expect_parameter("donation_amount")
donation_receiver = expect_parameter("donation_receiver")
donation_donor = expect_parameter("donation_donor")
- return flask.render_template(
- "templates/checkout.html",
- donation_amount=amount,
- donation_receiver=donation_receiver,
- donation_donor=donation_donor,
- merchant_currency=CURRENCY)
+ return flask.render_template("templates/checkout.html",
+ donation_amount=amount,
+ donation_receiver=donation_receiver,
+ donation_donor=donation_donor,
+ merchant_currency=CURRENCY)
##
@@ -182,8 +193,7 @@ def checkout():
# @return response object about the mentioned impossibility.
@app.route("/provider-not-supported")
def provider_not_supported():
- return flask.render_template( "templates/provider-not-supported.html")
-
+ return flask.render_template("templates/provider-not-supported.html")
##
@@ -201,18 +211,24 @@ def donate():
payment_system = expect_parameter("payment_system")
if payment_system != "taler":
return flask.redirect(flask.url_for("provider_not_supported"))
- fulfillment_url = flask.url_for("fulfillment", receiver=donation_receiver, _external=True)
+ fulfillment_url = flask.url_for("fulfillment",
+ receiver=donation_receiver,
+ _external=True)
order = dict(
amount=donation_amount,
- extra=dict(donor=donation_donor, receiver=donation_receiver, amount=donation_amount),
+ extra=dict(donor=donation_donor,
+ receiver=donation_receiver,
+ amount=donation_amount),
fulfillment_url=fulfillment_url,
instance=donation_receiver,
summary="Donation to {}".format(donation_receiver),
)
order_resp = backend_post("order", dict(order=order))
order_id = order_resp["order_id"]
- return flask.redirect(flask.url_for("fulfillment", receiver=donation_receiver, order_id=order_id))
-
+ return flask.redirect(
+ flask.url_for("fulfillment",
+ receiver=donation_receiver,
+ order_id=order_id))
##
@@ -226,8 +242,7 @@ def donate():
@app.route("/donation/<receiver>")
def fulfillment(receiver):
order_id = expect_parameter("order_id")
- pay_params = dict(instance=receiver,
- order_id=order_id)
+ pay_params = dict(instance=receiver, order_id=order_id)
pay_status = backend_get("check-payment", pay_params)
if pay_status.get("payment_redirect_url"):
@@ -235,13 +250,12 @@ def fulfillment(receiver):
if pay_status.get("paid"):
extra = pay_status["contract_terms"]["extra"]
- return flask.render_template(
- "templates/fulfillment.html",
- donation_receiver=extra["receiver"],
- donation_amount=extra["amount"],
- donation_donor=extra["donor"],
- order_id=order_id,
- currency=CURRENCY)
+ return flask.render_template("templates/fulfillment.html",
+ donation_receiver=extra["receiver"],
+ donation_amount=extra["amount"],
+ donation_donor=extra["donor"],
+ order_id=order_id,
+ currency=CURRENCY)
# no pay_redirect but article not paid, this should never happen!
err_abort(500, message="Internal error, invariant failed", json=pay_status)