From 710f4097549a182fffe6b94692b3fd05de93b920 Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Fri, 21 May 2021 08:49:59 +0200
Subject: [PATCH] Refactoring: rename covid19 to flask_covid19

---
 requirements/build.in         |  4 +---
 requirements/dev.in           |  3 +++
 src/config.py                 |  1 +
 src/database.py               | 26 +++++++++++++++++++-------
 src/flask_covid19/__init__.py |  4 +++-
 5 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/requirements/build.in b/requirements/build.in
index 7a8ff69f..75fc5c0f 100644
--- a/requirements/build.in
+++ b/requirements/build.in
@@ -23,6 +23,4 @@ docutils>=0.17.1
 identify>=2.2.4
 pygments>=2.9.0
 pytz>=2021.1
-Flask>=1.1.4,<2.0
-Flask-SQLAlchemy>=2.5.1
-SQLAlchemy>=1.4.15
\ No newline at end of file
+Flask>=1.1.4,<2.0
\ No newline at end of file
diff --git a/requirements/dev.in b/requirements/dev.in
index 0dbc00af..11298cdf 100644
--- a/requirements/dev.in
+++ b/requirements/dev.in
@@ -1,5 +1,6 @@
 -r docs.in
 -r tests.in
+Flask-SQLAlchemy>=2.5.1
 Flask-Cors>=3.0.10
 Flask-BS4>=4.5.3.0,<5.0
 Flask-Admin>=1.5.8
@@ -7,6 +8,8 @@ Flask-Login>=0.5.0
 flask-login-dictabase-blueprint>=1.1.4
 Flask-Caching>=1.10.1
 celery[redis]>=5.0.5
+SQLAlchemy>=1.4.15
+memcache>=0.5.1
 PyMySQL>=1.0.2
 psycopg2-binary>=2.8.6
 wget>=3.2
diff --git a/src/config.py b/src/config.py
index ebd25f4b..d537674e 100644
--- a/src/config.py
+++ b/src/config.py
@@ -12,6 +12,7 @@ SQLALCHEMY_DATABASE_DB = 'covid19data'
 CACHE_TYPE = 'MemcachedCache'
 CACHE_MEMCACHED_SERVERS = '127.0.0.1:11211'
 CACHE_DEFAULT_TIMEOUT = 120
+CACHE_KEY_PREFIX = 'flask_covid19_'
 SQLALCHEMY_ITEMS_PER_PAGE = 20
 SQLALCHEMY_TRACK_MODIFICATIONS = True
 FLASK_ADMIN_SWATCH = 'superhero'
diff --git a/src/database.py b/src/database.py
index c78da4d5..5f75fb31 100644
--- a/src/database.py
+++ b/src/database.py
@@ -13,12 +13,22 @@ from flask_admin import Admin
 # https://flask-caching.readthedocs.io/en/latest/
 # https://www.howtoforge.de/anleitung/wie-installiere-ich-memcached-auf-ubuntu-2004-lts/
 
-cache = Cache(
-    config={
-        "CACHE_TYPE": "MemcachedCache",
-        "CACHE_MEMCACHED_SERVERS": "127.0.0.1:11211"
-    }
-)
+cache_config_simple = {
+    "DEBUG": True,
+    "CACHE_TYPE": "SimpleCache",
+    "CACHE_DEFAULT_TIMEOUT": 120,
+    "CACHE_KEY_PREFIX": 'flask_covid19_'
+}
+
+cache_config_MemcachedCache = {
+    "DEBUG": True,
+    "CACHE_TYPE": "MemcachedCache",
+    "CACHE_MEMCACHED_SERVERS": "127.0.0.1:11211",
+    "CACHE_DEFAULT_TIMEOUT": 120,
+    "CACHE_KEY_PREFIX": 'flask_covid19_'
+}
+
+cache = Cache()
 app_cors = CORS()
 app_bootstrap = Bootstrap()
 login_manager = LoginManager()
@@ -39,7 +49,9 @@ def create_app():
     my_app.config['SQLALCHEMY_DATABASE_URI'] = my_db_url
     my_app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False  # silence the deprecation warning
     my_app.config['FLASK_ADMIN_SWATCH'] = 'superhero'
-    cache.init_app(my_app)
+    cache.init_app(my_app, config=cache_config_simple)
+    with my_app.app_context():
+        cache.clear()
     return my_app
 
 
diff --git a/src/flask_covid19/__init__.py b/src/flask_covid19/__init__.py
index f91ff3df..08922b72 100644
--- a/src/flask_covid19/__init__.py
+++ b/src/flask_covid19/__init__.py
@@ -13,7 +13,7 @@ from flask_covid19.blueprints.data_who.who_service import WhoService
 from flask_covid19.blueprints.data_divi.divi_service import DiviService
 from flask_covid19.blueprints.data_rki_cases.rki_service import RkiService
 
-from database import app, run_run_with_debug, port, db
+from database import app, run_run_with_debug, port, db, cache
 
 from flask_covid19.blueprints.app_web.web_services import app_user_service
 from flask_covid19.blueprints.app_web.web_service import WebService
@@ -22,5 +22,7 @@ from flask_covid19.blueprints.app_web.web_service import WebService
 def run_web():
     application_service = WebService(db, app_user_service)
     application_service.prepare_run_web()
+    with app.app_context():
+        cache.clear()
     app.run(debug=run_run_with_debug, port=port)
 
-- 
GitLab