gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-blog] branch master updated: delete article from cac


From: gnunet
Subject: [GNUnet-SVN] [taler-blog] branch master updated: delete article from cache after refund
Date: Fri, 19 Jan 2018 01:43:05 +0100

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

dold pushed a commit to branch master
in repository blog.

The following commit(s) were added to refs/heads/master by this push:
     new dccc33d  delete article from cache after refund
dccc33d is described below

commit dccc33da066801b7074e9541e7fcb040c61ece76
Author: Florian Dold <address@hidden>
AuthorDate: Fri Jan 19 01:42:59 2018 +0100

    delete article from cache after refund
---
 talerblog/blog/blog.py | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/talerblog/blog/blog.py b/talerblog/blog/blog.py
index d0e0b09..7d11294 100644
--- a/talerblog/blog/blog.py
+++ b/talerblog/blog/blog.py
@@ -110,6 +110,12 @@ def javascript_licensing():
     return flask.render_template("templates/javascript.html")
 
 
+# Cache for paid articles (in the form <session_id>-<article_name>), so we
+# don't always have to ask the backend / DB, and so we don't have to store
+# variable-size cookies on the client.
+paid_articles_cache = SimpleCache()
+
+
 # Triggers the refund by serving /refund/test?order_id=XY.
 # Will be triggered by a "refund button".
 @app.route("/refund/<order_id>", methods=["POST"])
@@ -127,9 +133,16 @@ def refund(order_id):
         instance=INSTANCE,
     )
     resp = backend_post("refund", refund_spec)
-    if resp.get("refund_redirect_url"):
-        return flask.redirect(resp["refund_redirect_url"])
-    err_abort(500, message="Response from backend incomplete", json=resp)
+    try:
+        # delete from paid article cache
+        article_name = refund_spec["contract_terms"]["extra"]["article_name"]
+        session_id = flask.session.get("session_id", "")
+        paid_articles_cache.delete(session_id + "-" + article_name)
+        if resp.get("refund_redirect_url"):
+            return flask.redirect(resp["refund_redirect_url"])
+    except KeyError:
+        err_abort(500, message="Response from backend incomplete", json=resp)
+
 
 
 def render_article(article_name, data, order_id):
@@ -150,12 +163,6 @@ def render_article(article_name, data, order_id):
                                  order_id=order_id)
 
 
-# Cache for paid articles (in the form <session_id>-<article_name>), so we
-# don't always have to ask the backend / DB, and so we don't have to store
-# variable-size cookies on the client.
-paid_articles_cache = SimpleCache()
-
-
 @app.route("/essay/<article_name>")
 @app.route("/essay/<article_name>/data/<data>")
 def article(article_name, data=None):
@@ -196,6 +203,7 @@ def article(article_name, data=None):
         resource_url=flask.request.base_url,
         session_id=session_id,
         session_sig=session_sig,
+        extra=dict(article_name=article_name)
     )
 
     pay_status = backend_get("check-payment", pay_params)

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



reply via email to

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