From d5c6f1478bde2324c2f746e2ebf9fadb6136a511 Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Mon, 18 Jan 2021 14:37:35 +0100
Subject: [PATCH] ### 0.0.8 Release * Issue #13 /who/imported/ * Issue #14
 /europe/imported/ * Issue #3 ORM: 3NF for ecdc_europa_data_import * Issue #4
 data update for 3NF ecdc_europa_data_import

---
 .gitignore                                   |  1 +
 app.py                                       |  5 +++--
 org/woehlke/covid19/europe/europe_service.py | 15 +++++++++++----
 server_mq.py                                 | 16 ++++++++++++++--
 4 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/.gitignore b/.gitignore
index aa083a86..24309943 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1136,3 +1136,4 @@ Debug*/Debug*\ Libs
 /download *.wget
 /WHO-COVID-19-global-data *.csv
 /data/WHO-COVID-19-global-data *.csv
+/data/ecdc_europa_data (1).csv
diff --git a/app.py b/app.py
index e68f18d1..cf3c0622 100644
--- a/app.py
+++ b/app.py
@@ -7,7 +7,7 @@ from org.woehlke.covid19.who.who_model import WhoRegion, WhoCountry, WhoDateRepo
 from org.woehlke.covid19.who.who_service import WhoService
 from org.woehlke.covid19.europe.europe_model import EuropeDataImportTable
 from org.woehlke.covid19.europe.europe_service import EuropeService
-from server_mq import who_run_update_task, alive_message_task, who_update_short_task
+from server_mq import who_run_update_task, alive_message_task, who_update_short_task, europe_update_task
 
 
 class ApplicationPage:
@@ -238,7 +238,8 @@ def url_europe_tasks():
 
 @app.route('/europe/update')
 def europe_update_data():
-    europe_service.run_update()
+    europe_service.download()
+    europe_update_task.apply_async()
     flash("europe_service.run_update started")
     return redirect(url_for('home'))
 
diff --git a/org/woehlke/covid19/europe/europe_service.py b/org/woehlke/covid19/europe/europe_service.py
index c5df4cd6..fe64e3bb 100644
--- a/org/woehlke/covid19/europe/europe_service.py
+++ b/org/woehlke/covid19/europe/europe_service.py
@@ -31,9 +31,9 @@ class EuropeService:
         os.makedirs('data', exist_ok=True)
         app.logger.info("------------------------------------------------------------")
         try:
-            data_file = wget.download(self.__url_src_data)
-            os.remove(self.__src_europa_cvsfile_name)
-            os.renames(data_file, self.__src_europa_cvsfile_name)
+            data_file = wget.download(self.__url_src_data,self.__src_europa_cvsfile_name)
+            #os.remove(self.__src_europa_cvsfile_name)
+            #os.renames(data_file, self.__src_europa_cvsfile_name)
             app.logger.info("------------------------------------------------------------")
         except Exception as error:
             app.logger.warning(error)
@@ -93,10 +93,17 @@ class EuropeService:
     def __update_db(self):
         return self
 
+    def download(self):
+        app.logger.info(" download [begin]")
+        app.logger.info("------------------------------------------------------------")
+        self.__download()
+        app.logger.info(" download [done]")
+        app.logger.info("------------------------------------------------------------")
+        return self
+
     def run_update(self):
         app.logger.info(" run [begin]")
         app.logger.info("------------------------------------------------------------")
-        self.__download()
         self.__import()
         self.__update_db()
         app.logger.info(" run [done]")
diff --git a/server_mq.py b/server_mq.py
index 9917a23d..209e55be 100644
--- a/server_mq.py
+++ b/server_mq.py
@@ -5,6 +5,7 @@ from org.woehlke.covid19.who.who_service import WhoService
 from org.woehlke.covid19.europe.europe_service import EuropeService
 
 who_service = WhoService(db)
+europe_service = EuropeService(db)
 celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
 celery.conf.update(app.config)
 
@@ -22,12 +23,12 @@ def who_run_update_task(self, import_file=True):
 
 
 @celery.task(bind=True)
-def who_update_short_task(self, import_file=True):
+def who_update_short_task(self):
     self.update_state(state=states.STARTED)
     app.logger.info("------------------------------------------------------------")
     app.logger.info(" Received: who_update_short_task [OK] ")
     app.logger.info("------------------------------------------------------------")
-    who_service.run_update_short(import_file)
+    who_service.run_update_short()
     self.update_state(state=states.SUCCESS)
     result = "OK (who_update_short_task)"
     return result
@@ -43,3 +44,14 @@ def alive_message_task(self):
     result = "OK"
     return result
 
+
+@celery.task(bind=True)
+def europe_update_task(self):
+    self.update_state(state=states.STARTED)
+    app.logger.info("------------------------------------------------------------")
+    app.logger.info(" Received: europe_update_task [OK] ")
+    app.logger.info("------------------------------------------------------------")
+    europe_service.run_update()
+    self.update_state(state=states.SUCCESS)
+    result = "OK (europe_update_task)"
+    return result
\ No newline at end of file
-- 
GitLab