summaryrefslogtreecommitdiff
path: root/talersurvey/survey/survey.py
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-08-29 23:08:26 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-08-29 23:08:26 +0200
commit141e949fa9f09e5f54acdfa90f609895236a8ac0 (patch)
tree9b962c32b22116a1517901b3fa5536fc47b3d892 /talersurvey/survey/survey.py
parentdaebe1981a0df80187660d5aeda497fe43bf3531 (diff)
downloadsurvey-141e949fa9f09e5f54acdfa90f609895236a8ac0.tar.gz
survey-141e949fa9f09e5f54acdfa90f609895236a8ac0.tar.bz2
survey-141e949fa9f09e5f54acdfa90f609895236a8ac0.zip
make pretty
Diffstat (limited to 'talersurvey/survey/survey.py')
-rw-r--r--talersurvey/survey/survey.py102
1 files changed, 69 insertions, 33 deletions
diff --git a/talersurvey/survey/survey.py b/talersurvey/survey/survey.py
index 79d0f16..1c6b8aa 100644
--- a/talersurvey/survey/survey.py
+++ b/talersurvey/survey/survey.py
@@ -48,14 +48,21 @@ LOGGER = logging.getLogger(__name__)
# the merchant backend.
# @return a flask-native response object.
def backend_error(requests_response):
- LOGGER.error("Backend error: status code: "
- + str(requests_response.status_code))
+ LOGGER.error(
+ "Backend error: status code: " + str(requests_response.status_code)
+ )
try:
- return flask.jsonify(requests_response.json()), requests_response.status_code
+ return flask.jsonify(
+ requests_response.json()
+ ), requests_response.status_code
except json.decoder.JSONDecodeError:
- LOGGER.error("Backend error (NO JSON returned): status code: "
- + str(requests_response.status_code))
- return flask.jsonify(dict(error="Backend died, no JSON got from it")), 502
+ LOGGER.error(
+ "Backend error (NO JSON returned): status code: " +
+ str(requests_response.status_code)
+ )
+ return flask.jsonify(
+ dict(error="Backend died, no JSON got from it")
+ ), 502
##
@@ -66,14 +73,15 @@ def backend_error(requests_response):
def utility_processor():
def env(name, default=None):
return os.environ.get(name, default)
+
def prettydate(talerdate):
- parsed_time = re.search(r"/Date\(([0-9]+)\)/", talerdate)
- if not parsed_time:
- return "malformed date given"
- parsed_time = int(parsed_time.group(1))
- timestamp = datetime.datetime.fromtimestamp(parsed_time)
- # returns the YYYY-MM-DD date format.
- return timestamp.strftime("%Y-%b-%d")
+ parsed_time = re.search(r"/Date\(([0-9]+)\)/", talerdate)
+ if not parsed_time:
+ return "malformed date given"
+ parsed_time = int(parsed_time.group(1))
+ timestamp = datetime.datetime.fromtimestamp(parsed_time)
+ # returns the YYYY-MM-DD date format.
+ return timestamp.strftime("%Y-%b-%d")
return dict(env=env, prettydate=prettydate)
@@ -99,17 +107,26 @@ def err_abort(abort_status_code, **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",
- status_code=resp.status_code)
+ 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
@@ -123,7 +140,9 @@ def backend_post(endpoint, json):
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:
@@ -131,8 +150,12 @@ 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
@@ -144,9 +167,11 @@ def backend_get(endpoint, params):
# (and execution stack!).
@app.errorhandler(Exception)
def internal_error(e):
- return flask.render_template("templates/error.html",
- message="Internal error",
- stack=traceback.format_exc())
+ return flask.render_template(
+ "templates/error.html",
+ message="Internal error",
+ stack=traceback.format_exc()
+ )
##
@@ -156,8 +181,12 @@ def internal_error(e):
@app.route("/favicon.ico")
def favicon():
print("will look into: " + os.path.join(app.root_path, 'static'))
- return flask.send_from_directory(os.path.join(app.root_path, 'static'),
- "favicon.ico", mimetype="image/vnd.microsoft.ico")
+ return flask.send_from_directory(
+ os.path.join(app.root_path, 'static'),
+ "favicon.ico",
+ mimetype="image/vnd.microsoft.ico"
+ )
+
##
# Give information about the tip reserve status.
@@ -169,6 +198,7 @@ def survey_stats():
stats = backend_get("tip-query", dict(instance="default"))
return flask.render_template("templates/survey_stats.html", stats=stats)
+
##
# Tell the backend to 'authorize' a tip; this means that
# the backend will allocate a certain amount to be later
@@ -179,17 +209,21 @@ def survey_stats():
# otherwise.
@app.route("/submit-survey", methods=["POST"])
def submit_survey():
- tip_spec = dict(amount=CURRENCY + ":1.0",
- next_url=os.environ.get("TALER_ENV_URL_INTRO", "https://taler.net/"),
- instance="default",
- justification="Payment methods survey")
+ tip_spec = dict(
+ amount=CURRENCY + ":1.0",
+ next_url=os.environ.get("TALER_ENV_URL_INTRO", "https://taler.net/"),
+ instance="default",
+ justification="Payment methods survey"
+ )
resp = backend_post("tip-authorize", tip_spec)
if resp.get("tip_redirect_url"):
return flask.redirect(resp["tip_redirect_url"])
- err_abort(500, message="Tipping failed, unexpected backend response",
- json=resp)
+ err_abort(
+ 500, message="Tipping failed, unexpected backend response", json=resp
+ )
+
##
# Serve the main index page.
@@ -197,4 +231,6 @@ def submit_survey():
# @return response object of the index page.
@app.route("/", methods=["GET"])
def index():
- return flask.render_template("templates/index.html", merchant_currency=CURRENCY)
+ return flask.render_template(
+ "templates/index.html", merchant_currency=CURRENCY
+ )