From 25781c9164ab9ff642b6c3ff9ca8c8bf7575add8 Mon Sep 17 00:00:00 2001
From: thomaswoehlke <thomas.woehlke@gmail.com>
Date: Mon, 24 May 2021 04:32:13 +0200
Subject: [PATCH] Refactoring: rename covid19 to flask_covid19

---
 .../rki_vaccination_model.py                  |  11 +-
 .../rki_vaccination_service.py                |  29 +--
 .../rki_vaccination_service_update.py         | 200 ++++--------------
 3 files changed, 55 insertions(+), 185 deletions(-)

diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py
index d7793e59..e99b6b36 100644
--- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py
+++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_model.py
@@ -89,10 +89,13 @@ class RkiVaccinationData(db.Model):
 
     @classmethod
     def remove_all(cls):
-        for one in cls.get_all():
-            db.session.delete(one)
-        db.session.commit()
-        return None
+        num_rows_deleted = 0
+        try:
+            num_rows_deleted = db.session.query(cls).delete()
+            db.session.commit()
+        except Exception:
+            db.session.rollback()
+        return num_rows_deleted
 
     @classmethod
     def get_all_as_page(cls, page: int):
diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py
index 00b9da19..44f13d8e 100644
--- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py
+++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service.py
@@ -24,7 +24,6 @@ class RkiVaccinationService:
 
     def download(self):
         flash("VaccinationService.download [start]")
-        # TODO self.service_download.download()
         self.service_download.download_file()
         flash("VaccinationService.download [done]")
         return self
@@ -34,43 +33,35 @@ class RkiVaccinationService:
         return self
 
     def full_update_dimension_tables(self):
-        # TODO self.service_update_full.full_update_dimension_tables()
-        self.service_update_full.update_dimension_tables_only()
+        self.service_update_full.full_update_dimension_tables()
         return self
 
     def update_dimension_tables(self):
-        # TODO self.service_update.update_dimension_tables()
-        self.service_update.update_dimension_tables_only()
+        self.service_update.update_dimension_tables()
         return self
 
     def full_update_fact_table(self):
-        # TODO self.service_update_full.full_update_fact_table()
-        self.service_update_full.update_fact_table_initial_only()
+        self.service_update_full.full_update_fact_table()
         return self
 
     def update_fact_table(self):
-        # TODO self.service_update.update_fact_table()
-        self.service_update.update_fact_table_incremental_only()
+        self.service_update.update_fact_table()
         return self
 
     def full_update_star_schema(self):
-        self.service_import.import_file()
-        # TODO self.service_update_full.full_update_star_schema()
-        self.service_update_full.update_star_schema_initial()
+        self.service_update_full.full_update_star_schema()
         return self
 
     def update_star_schema(self):
-        self.service_import.import_file()
-        # TODO self.service_update.update_star_schema()
-        self.service_update.update_star_schema_incremental()
+        self.service_update.update_star_schema()
         return self
 
     def full_update(self):
-        # TODO self.service_update_full.full_update_star_schema()
-        self.service_update_full.update_star_schema_initial()
+        self.service_import.import_file()
+        self.service_update_full.full_update_star_schema()
         return self
 
     def update(self):
-        # TODO self.service_update.update_star_schema()
-        self.service_update.update_star_schema_incremental()
+        self.service_import.import_file()
+        self.service_update.update_star_schema()
         return self
diff --git a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py
index d3928954..ff81894c 100644
--- a/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py
+++ b/src/flask_covid19/blueprints/data_rki_vaccination/rki_vaccination_service_update.py
@@ -8,51 +8,46 @@ from flask_covid19.blueprints.data_rki_vaccination.rki_vaccination_model import
 class RkiVaccinationServiceUpdateBase:
     def __init__(self, database, config: BlueprintConfig):
         app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" Europe Service Update [init]")
+        app.logger.debug(" Vaccination Service Update [init]")
         app.logger.debug("------------------------------------------------------------")
         self.__database = database
         self.cfg = config
         app.logger.debug("------------------------------------------------------------")
-        app.logger.debug(" Europe Service Update [ready] ")
+        app.logger.debug(" Vaccination Service Update [ready] ")
 
 
 class RkiVaccinationServiceUpdateFull(RkiVaccinationServiceUpdateBase):
 
-    def __update_date_reported(self):
-        app.logger.info(" __update_date_reported [begin]")
+    def __full_update_date_reported(self):
+        app.logger.info(" RkiVaccinationServiceUpdateFull.__full_update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
-        RkiVaccinationData.remove_all()
         RkiVaccinationDateReported.remove_all()
         date_reported_list = RkiVaccinationImport.get_date_reported_as_array()
         i = 0
         for one_date_reported in date_reported_list:
             i += 1
-            output = " [ " + str(i) + " ] " + one_date_reported + " added"
             o = RkiVaccinationDateReported.create_new_object_factory(one_date_reported)
             db.session.add(o)
+            output = " full_update RkiVaccination date_reported [ " + str(i) + " ] " + str(o)
             app.logger.info(output)
         db.session.commit()
-        app.logger.info(" __update_date_reported [done]")
+        app.logger.info("  RkiVaccinationServiceUpdateFull.__full_update_date_reported  [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_fact_table_initial(self):
+    def __full_update_fact_table(self):
         app.logger.info(" __update_data_initial [begin]")
         app.logger.info("------------------------------------------------------------")
         RkiVaccinationData.remove_all()
         result_date_rep = RkiVaccinationImport.get_date_rep()
         i = 0
         for item_date_rep, in result_date_rep:
-            date_reported = RkiVaccinationDateReported.find_by_date_reported(
-                p_date_reported=item_date_rep
+            d = RkiVaccinationDateReported.get_by_date_reported(
+                s_date_reported_import_str=item_date_rep
             )
-            if date_reported is None:
-                o = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=item_date_rep)
-                date_reported = o
-            result_data_import = RkiVaccinationImport.find_by_datum(date_reported.date_reported_import_str)
-            for item_import in result_data_import:
+            for item_import in RkiVaccinationImport.find_by_datum(d.date_reported_import_str):
                 o = RkiVaccinationData(
-                    date_reported=date_reported,
+                    date_reported=d,
                     dosen_kumulativ=item_import.dosen_kumulativ,
                     dosen_differenz_zum_vortag=item_import.dosen_differenz_zum_vortag,
                     dosen_biontech_kumulativ=item_import.dosen_biontech_kumulativ,
@@ -72,89 +67,34 @@ class RkiVaccinationServiceUpdateFull(RkiVaccinationServiceUpdateBase):
                     indikation_alter_voll=item_import.indikation_alter_voll,
                     indikation_beruf_voll=item_import.indikation_beruf_voll,
                     indikation_medizinisch_voll=item_import.indikation_medizinisch_voll,
-                    indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll
+                    indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll,
+                    processed_update=False,
+                    processed_full_update=True,
                 )
+                item_import.processed_full_update = True
                 db.session.add(o)
                 i += 1
                 if i % 500 == 0:
-                    app.logger.info(" update Vaccination initial ... " + str(i) + " rows")
+                    app.logger.info(" full update Vaccination data ... " + str(i) + " rows")
                     db.session.commit()
         db.session.commit()
-        app.logger.info(" update Vaccination initial ... " + str(i) + " rows total")
+        app.logger.info(" full update Vaccination data ... " + str(i) + " rows total")
         app.logger.info(" __update_data_initial [done]")
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_fact_table_incremental(self):
-        app.logger.info(" __update_fact_table_incremental Vaccination [begin]")
-        app.logger.info("------------------------------------------------------------")
-        result_date_rep = RkiVaccinationImport.get_daterep_missing_in_vaccination_data()
-        i = 0
-        for item_date_rep in result_date_rep:
-            date_reported = RkiVaccinationDateReported.find_by_date_reported(item_date_rep)
-            #date_reported = RkiVaccinationDateReported.create_new_object_factory(item_date_rep)
-            result_data_import = RkiVaccinationImport.find_by_datum(item_date_rep)
-            for item_data_import in result_data_import:
-                o = RkiVaccinationData(
-                    date_reported=date_reported,
-                    dosen_kumulativ=item_data_import.dosen_kumulativ,
-                    dosen_differenz_zum_vortag=item_data_import.dosen_differenz_zum_vortag,
-                    dosen_biontech_kumulativ=item_data_import.dosen_biontech_kumulativ,
-                    dosen_moderna_kumulativ=item_data_import.dosen_moderna_kumulativ,
-                    personen_erst_kumulativ=item_data_import.personen_erst_kumulativ,
-                    personen_voll_kumulativ=item_data_import.personen_voll_kumulativ,
-                    impf_quote_erst=item_data_import.impf_quote_erst,
-                    impf_quote_voll=item_data_import.impf_quote_voll,
-                    indikation_alter_dosen=item_data_import.indikation_alter_dosen,
-                    indikation_beruf_dosen=item_data_import.indikation_beruf_dosen,
-                    indikation_medizinisch_dosen=item_data_import.indikation_medizinisch_dosen,
-                    indikation_pflegeheim_dosen=item_data_import.indikation_pflegeheim_dosen,
-                    indikation_alter_erst=item_data_import.indikation_alter_erst,
-                    indikation_beruf_erst=item_data_import.indikation_beruf_erst,
-                    indikation_medizinisch_erst=item_data_import.indikation_medizinisch_erst,
-                    indikation_pflegeheim_erst=item_data_import.indikation_pflegeheim_erst,
-                    indikation_alter_voll=item_data_import.indikation_alter_voll,
-                    indikation_beruf_voll=item_data_import.indikation_beruf_voll,
-                    indikation_medizinisch_voll=item_data_import.indikation_medizinisch_voll,
-                    indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll
-                )
-                db.session.add(o)
-                i += 1
-                if i % 500 == 0:
-                    app.logger.info(" update Vaccination incremental ... " + str(i) + " rows")
-                    db.session.commit()
-        db.session.commit()
-        app.logger.info(" update Vaccination incremental ... " + str(i) + " rows total")
-        app.logger.info(" __update_fact_table_incremental Vaccination [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    def __update_dimension_table_date_reported(self):
-        self.__update_date_reported()
-        return self
-
-    def update_dimension_tables_only(self):
-        self.__update_dimension_table_date_reported()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.__update_fact_table_incremental()
-        return self
-
-    def update_fact_table_initial_only(self):
-        self.__update_fact_table_initial()
+    def full_update_dimension_tables(self):
+        RkiVaccinationData.remove_all()
+        self.__full_update_date_reported()
         return self
 
-    def update_star_schema_incremental(self):
-        self.__update_dimension_table_date_reported()
-        self.__update_fact_table_incremental()
+    def full_update_fact_table(self):
+        self.__full_update_fact_table()
         return self
 
-    def update_star_schema_initial(self):
-        RkiVaccinationData.remove_all()
-        RkiVaccinationDateReported.remove_all()
-        self.__update_dimension_table_date_reported()
-        self.__update_fact_table_initial()
+    def full_update_star_schema(self):
+        self.full_update_dimension_tables()
+        self.full_update_fact_table()
         return self
 
 
@@ -163,7 +103,6 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase):
     def __update_date_reported(self):
         app.logger.info(" __update_date_reported [begin]")
         app.logger.info("------------------------------------------------------------")
-        RkiVaccinationData.remove_all()
         RkiVaccinationDateReported.remove_all()
         date_reported_list = RkiVaccinationImport.get_date_reported_as_array()
         i = 0
@@ -178,65 +117,14 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase):
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_fact_table_initial(self):
-        app.logger.info(" __update_data_initial [begin]")
-        app.logger.info("------------------------------------------------------------")
-        RkiVaccinationData.remove_all()
-        result_date_rep = RkiVaccinationImport.get_date_rep()
-        i = 0
-        for item_date_rep, in result_date_rep:
-            date_reported = RkiVaccinationDateReported.find_by_date_reported(
-                p_date_reported=item_date_rep
-            )
-            if date_reported is None:
-                o = RkiVaccinationDateReported.create_new_object_factory(my_date_rep=item_date_rep)
-                date_reported = o
-            result_data_import = RkiVaccinationImport.find_by_datum(date_reported.date_reported_import_str)
-            for item_import in result_data_import:
-                o = RkiVaccinationData(
-                    date_reported=date_reported,
-                    dosen_kumulativ=item_import.dosen_kumulativ,
-                    dosen_differenz_zum_vortag=item_import.dosen_differenz_zum_vortag,
-                    dosen_biontech_kumulativ=item_import.dosen_biontech_kumulativ,
-                    dosen_moderna_kumulativ=item_import.dosen_moderna_kumulativ,
-                    personen_erst_kumulativ=item_import.personen_erst_kumulativ,
-                    personen_voll_kumulativ=item_import.personen_voll_kumulativ,
-                    impf_quote_erst=item_import.impf_quote_erst,
-                    impf_quote_voll=item_import.impf_quote_voll,
-                    indikation_alter_dosen=item_import.indikation_alter_dosen,
-                    indikation_beruf_dosen=item_import.indikation_beruf_dosen,
-                    indikation_medizinisch_dosen=item_import.indikation_medizinisch_dosen,
-                    indikation_pflegeheim_dosen=item_import.indikation_pflegeheim_dosen,
-                    indikation_alter_erst=item_import.indikation_alter_erst,
-                    indikation_beruf_erst=item_import.indikation_beruf_erst,
-                    indikation_medizinisch_erst=item_import.indikation_medizinisch_erst,
-                    indikation_pflegeheim_erst=item_import.indikation_pflegeheim_erst,
-                    indikation_alter_voll=item_import.indikation_alter_voll,
-                    indikation_beruf_voll=item_import.indikation_beruf_voll,
-                    indikation_medizinisch_voll=item_import.indikation_medizinisch_voll,
-                    indikation_pflegeheim_voll=item_import.indikation_pflegeheim_voll
-                )
-                db.session.add(o)
-                i += 1
-                if i % 500 == 0:
-                    app.logger.info(" update Vaccination initial ... " + str(i) + " rows")
-                    db.session.commit()
-        db.session.commit()
-        app.logger.info(" update Vaccination initial ... " + str(i) + " rows total")
-        app.logger.info(" __update_data_initial [done]")
-        app.logger.info("------------------------------------------------------------")
-        return self
-
-    def __update_fact_table_incremental(self):
+    def __update_fact_table(self):
         app.logger.info(" __update_fact_table_incremental Vaccination [begin]")
         app.logger.info("------------------------------------------------------------")
         result_date_rep = RkiVaccinationImport.get_daterep_missing_in_vaccination_data()
         i = 0
         for item_date_rep in result_date_rep:
-            date_reported = RkiVaccinationDateReported.find_by_date_reported(item_date_rep)
-            #date_reported = RkiVaccinationDateReported.create_new_object_factory(item_date_rep)
-            result_data_import = RkiVaccinationImport.find_by_datum(item_date_rep)
-            for item_data_import in result_data_import:
+            date_reported = RkiVaccinationDateReported.get_by_date_reported(item_date_rep)
+            for item_data_import in RkiVaccinationImport.find_by_datum(item_date_rep):
                 o = RkiVaccinationData(
                     date_reported=date_reported,
                     dosen_kumulativ=item_data_import.dosen_kumulativ,
@@ -258,7 +146,9 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase):
                     indikation_alter_voll=item_data_import.indikation_alter_voll,
                     indikation_beruf_voll=item_data_import.indikation_beruf_voll,
                     indikation_medizinisch_voll=item_data_import.indikation_medizinisch_voll,
-                    indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll
+                    indikation_pflegeheim_voll=item_data_import.indikation_pflegeheim_voll,
+                    processed_update=True,
+                    processed_full_update=False,
                 )
                 db.session.add(o)
                 i += 1
@@ -271,30 +161,16 @@ class RkiVaccinationServiceUpdate(RkiVaccinationServiceUpdateBase):
         app.logger.info("------------------------------------------------------------")
         return self
 
-    def __update_dimension_table_date_reported(self):
+    def update_dimension_tables(self):
+        RkiVaccinationData.remove_all()
         self.__update_date_reported()
         return self
 
-    def update_dimension_tables_only(self):
-        self.__update_dimension_table_date_reported()
-        return self
-
-    def update_fact_table_incremental_only(self):
-        self.__update_fact_table_incremental()
+    def update_fact_table(self):
+        self.__update_fact_table()
         return self
 
-    def update_fact_table_initial_only(self):
-        self.__update_fact_table_initial()
-        return self
-
-    def update_star_schema_incremental(self):
-        self.__update_dimension_table_date_reported()
-        self.__update_fact_table_incremental()
-        return self
-
-    def update_star_schema_initial(self):
-        RkiVaccinationData.remove_all()
-        RkiVaccinationDateReported.remove_all()
-        self.__update_dimension_table_date_reported()
-        self.__update_fact_table_initial()
+    def update_star_schema(self):
+        self.update_dimension_tables()
+        self.update_fact_table()
         return self
-- 
GitLab