gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-merchant-frontends] branch master updated: Backoffic


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant-frontends] branch master updated: Backoffice handlers echo back everything as they get it from the backend, because they are always queried by XHR, so it's fine to return plain JSON and let the JS handle it.
Date: Fri, 03 Mar 2017 11:56:36 +0100

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository merchant-frontends.

The following commit(s) were added to refs/heads/master by this push:
     new d5979ca  Backoffice handlers echo back everything as they get it from 
the backend, because they are always queried by XHR, so it's fine to return 
plain JSON and let the JS handle it.
d5979ca is described below

commit d5979ca89fe87b3bf7ade1abecd81fd2018101da
Author: Marcello Stanisci <address@hidden>
AuthorDate: Fri Mar 3 11:54:56 2017 +0100

    Backoffice handlers echo back everything as they
    get it from the backend, because they are always
    queried by XHR, so it's fine to return plain JSON
    and let the JS handle it.
---
 talerfrontends/blog/blog.py | 65 +++++++++++++++------------------------------
 1 file changed, 22 insertions(+), 43 deletions(-)

diff --git a/talerfrontends/blog/blog.py b/talerfrontends/blog/blog.py
index e161bdf..d40a9b8 100644
--- a/talerfrontends/blog/blog.py
+++ b/talerfrontends/blog/blog.py
@@ -35,8 +35,6 @@ from talerfrontends.talerconfig import TalerConfig
 from talerfrontends.helpers import (make_url,
 expect_parameter, expect_parameter_int, join_urlparts,
 get_query_string)
-from talerfrontends.errors import (TrackNotReadyError,
-MalformedParameterError, BackendError)
 from talerfrontends.blog.content import (articles,
 get_article_file, get_image_file)
 
@@ -65,17 +63,19 @@ def utility_processor():
     return dict(url=url)
 
 
address@hidden('/')
address@hidden("/")
 def index():
-    return flask.render_template('templates/index.html', 
merchant_currency=CURRENCY, articles=articles.values())
+    return flask.render_template("templates/index.html",
+                                 merchant_currency=CURRENCY,
+                                 articles=articles.values())
 
 
address@hidden('/javascript')
address@hidden("/javascript")
 def javascript_licensing():
-    return flask.render_template('templates/javascript.html')
+    return flask.render_template("templates/javascript.html")
 
 
address@hidden('/generate-contract', methods=["GET"])
address@hidden("/generate-contract", methods=["GET"])
 def generate_contract():
     article_name = expect_parameter("article_name")
     order = dict(
@@ -102,14 +102,15 @@ def generate_contract():
     r = requests.post(urljoin(BACKEND_URL, 'proposal'), json=dict(order=order))
     if r.status_code != 200:
         logger.error("failed to POST to '%s'", url)
-        return r.text, r.status_code
+        return flask.jsonify(r.json()), r.status_code
     proposal_resp = r.json()
     return flask.jsonify(**proposal_resp)
 
 
 @app.route("/cc-payment/<name>")
 def cc_payment(name):
-    return flask.render_template('templates/cc-payment.html', 
article_name=name)
+    return flask.render_template("templates/cc-payment.html",
+                                 article_name=name)
 
 
 @app.route("/essay/<name>")
@@ -126,10 +127,11 @@ def article(name, data=None):
                 return flask.send_file(get_image_file(data))
             else:
                 return "permission denied", 400
-        return flask.render_template('templates/article_frame.html', 
article_file=get_article_file(article))
+        return flask.render_template("templates/article_frame.html",
+                                     article_file=get_article_file(article))
 
     contract_url = make_url("/generate-contract", ("article_name",name))
-    response = 
flask.make_response(flask.render_template('templates/fallback.html'), 402)
+    response = 
flask.make_response(flask.render_template("templates/fallback.html"), 402)
     response.headers["X-Taler-Contract-Url"] = contract_url
     response.headers["X-Taler-Contract-Query"] = "fulfillment_url"
     response.headers["X-Taler-Pay-Url"] = make_url("/pay")
@@ -143,32 +145,24 @@ def pay():
     if deposit_permission is None:
         e = flask.jsonify(error="no json in body")
         return e, 400
-
-    r = requests.post(urljoin(BACKEND_URL, 'pay'), json=deposit_permission)
+    r = requests.post(urljoin(BACKEND_URL, "pay"), json=deposit_permission)
     if 200 != r.status_code:
-        return r.text, r.status_code
-
-
+        return flask.jsonify(r.json()), r.status_code
     proposal_data = r.json()["proposal_data"]
     article_name = proposal_data["extra"]["article_name"]
     payed_articles = flask.session["payed_articles"] = 
flask.session.get("payed_articles", [])
     if article_name not in payed_articles:
         payed_articles.append(article_name)
 
-    return r.text, 200
+    return flask.jsonify(r.json()), 200
 
 
 @app.route("/history")
 def history():
-    # FIXME now JS needs to give a *timestamp*, NOT
-    # days anymore..
     qs = get_query_string().decode("utf-8")
     url = urljoin(BACKEND_URL, "history")
     r = requests.get(url, params=dict(parse_qsl(qs)))
-    if r.status_code != 200:
-        logger.error("failed to GET to '%s'", url)
-        raise BackendError(r.status_code, r.text)
-    return r.text
+    return flask.jsonify(r.json()), r.status_code
 
 
 @app.route("/backoffice")
@@ -176,33 +170,18 @@ def track():
     response = 
flask.make_response(flask.render_template("templates/backoffice.html"))
     return response
 
+
 @app.route("/track/transfer")
 def track_transfer():
     qs = get_query_string().decode("utf-8")
-    url = urljoin(BACKEND_URL, 'track/transfer')
+    url = urljoin(BACKEND_URL, "track/transfer")
     r = requests.get(url, params=dict(parse_qsl(qs)))
-    if r.status_code not in [200, 424]:
-        raise BackendError(r.status_code, r.text)
-    if 404 == r.status_code:
-        raise CustomError(r.code, "Unknown WTID", s.status_code)
-    if 424 == r.status_code:
-        raise TrackTransactionConflictError(r.status_code, order_id, r.text)
-    return flask.jsonify(r.json())
+    return flask.jsonify(r.json()), r.status_code
 
 
 @app.route("/track/order")
 def track_order():
-
     qs = get_query_string().decode("utf-8")
-    url = urljoin(BACKEND_URL, 'track/transaction')
+    url = urljoin(BACKEND_URL, "track/transaction")
     r = requests.get(url, params=dict(parse_qsl(qs)))
-
-    if r.status_code not in [200, 202, 424]:
-        raise BackendError(r.status_code, r.text)
-    if 202 == r.status_code:
-        return flask.jsonify(r.json()), 202
-    if 404 == r.status_code:
-        raise CustomError(r.code, "Unknown order_id", s.status_code)
-    if 424 == r.status_code:
-        raise TrackTransactionConflictError(r.status_code, order_id, r.text)
-    return flask.jsonify(r.json())
+    return flask.jsonify(r.json()), r.status_code

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]