summaryrefslogtreecommitdiff
path: root/talersurvey/survey/survey.py
diff options
context:
space:
mode:
Diffstat (limited to 'talersurvey/survey/survey.py')
-rw-r--r--talersurvey/survey/survey.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/talersurvey/survey/survey.py b/talersurvey/survey/survey.py
index c5b796c..c5b72b5 100644
--- a/talersurvey/survey/survey.py
+++ b/talersurvey/survey/survey.py
@@ -76,12 +76,33 @@ def backend_post(endpoint, json):
return response_json
+def backend_get(endpoint, params):
+ headers = {"Authorization": "ApiKey " + APIKEY}
+ try:
+ 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:
+ response_json = resp.json()
+ 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)
+ return response_json
+
+
@app.errorhandler(Exception)
def internal_error(e):
return flask.render_template("templates/error.html",
message="Internal error",
stack=traceback.format_exc())
+@app.route("/survey-stats", methods=["GET"])
+def survey_stats(e):
+ stats = backend_get("tip-query", instance="default")
+ return flask.render_template("survey_stats.html", stats=stats)
+
@app.route("/submit-survey", methods=["POST"])
def submit_survey():