diff options
Diffstat (limited to 'talersurvey/survey/survey.py')
-rw-r--r-- | talersurvey/survey/survey.py | 21 |
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(): |