From 82ea0bb40e5d538f61fc950b1603b21be65f7956 Mon Sep 17 00:00:00 2001 From: MaanuelMM Date: Mon, 22 Apr 2019 18:33:57 +0200 Subject: [PATCH 1/3] Add get PORT config var from Heroku platform --- loaders/data_loader.py | 7 +++++-- web.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/loaders/data_loader.py b/loaders/data_loader.py index abd6ae8..2468315 100644 --- a/loaders/data_loader.py +++ b/loaders/data_loader.py @@ -2,15 +2,18 @@ # -*- coding: utf-8 -*- # Authors: Luis Carles Durá, Jaime García Velázquez, Manuel Martín Malagón, Rafael Rodríguez Sánchez # Created: 2019/04/11 -# Last update: 2019/04/16 +# Last update: 2019/04/22 import json +import os + class DataLoader: def __init__(self): try: + self.PORT = os.environ.get('PORT', '5000') with open('data/products.json', encoding='utf-8') as data: self.products = json.load(data) with open('data/product_categories.json', encoding='utf-8') as data: @@ -25,4 +28,4 @@ def __init__(self): self.order_states = json.load(data) except: print("Error while reading web application data.") - raise \ No newline at end of file + raise diff --git a/web.py b/web.py index f62b5ae..e9dbc0f 100644 --- a/web.py +++ b/web.py @@ -496,4 +496,4 @@ def customer_order_summary(num_table, num_order): if __name__ == "__main__": - app.run(host="0.0.0.0", debug=True) + app.run(host="0.0.0.0", port=int(data.PORT)) From 8df38b2ce1a699d33222fc91852e52a287a01e93 Mon Sep 17 00:00:00 2001 From: MaanuelMM Date: Mon, 22 Apr 2019 18:40:46 +0200 Subject: [PATCH 2/3] Add force secure connection --- web.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/web.py b/web.py index e9dbc0f..cf922aa 100644 --- a/web.py +++ b/web.py @@ -223,6 +223,14 @@ def make_active_product_category(active_category="drinks"): data.product_categories[category]["active"] = False +@app.before_request +def before_request(): + if request.url.startswith('http://'): + url = request.url.replace('http://', 'https://', 1) + code = 301 + return redirect(url, code=code) + + @app.route("/favicon.ico") def favicon(): return send_from_directory(os.path.join(app.root_path, "static"), From 51872d8c1d513dbdaa468bc7a2624651b1c9baaf Mon Sep 17 00:00:00 2001 From: MaanuelMM Date: Mon, 22 Apr 2019 18:49:35 +0200 Subject: [PATCH 3/3] Fix for many loops connection error --- requirements.txt | 3 ++- web.py | 13 +++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index ae09db0..b3353b8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -Flask==1.0.2 \ No newline at end of file +Flask==1.0.2 +flask-sslify==0.1.5 \ No newline at end of file diff --git a/web.py b/web.py index cf922aa..58ebaa7 100644 --- a/web.py +++ b/web.py @@ -11,6 +11,8 @@ from flask import Flask, flash, redirect, render_template, request, session, abort, send_from_directory from loaders.data_loader import DataLoader +from flask_sslify import SSLify + try: data = DataLoader() @@ -19,6 +21,9 @@ app = Flask(__name__) +if 'DYNO' in os.environ: # only trigger SSLify if the app is running on Heroku + sslify = SSLify(app) + def order_has_pending_record(order_id): has_pending_record = False @@ -223,14 +228,6 @@ def make_active_product_category(active_category="drinks"): data.product_categories[category]["active"] = False -@app.before_request -def before_request(): - if request.url.startswith('http://'): - url = request.url.replace('http://', 'https://', 1) - code = 301 - return redirect(url, code=code) - - @app.route("/favicon.ico") def favicon(): return send_from_directory(os.path.join(app.root_path, "static"),