From e4ff95032dbda0e66a44a26ea67c629673ba6d57 Mon Sep 17 00:00:00 2001 From: "thomas.woehlke" <thomas.woehlke@rub.de> Date: Sun, 14 Mar 2021 20:59:36 +0100 Subject: [PATCH] uml --- .../{who/useCases.txt => admin_use_cases.txt} | 0 docs/blueprints/application_use_cases.txt | 18 ++ docs/blueprints/ecdc_use_cases.txt | 66 +++++ docs/blueprints/owid_use_cases.txt | 50 ++++ docs/blueprints/rki_vaccination_use_cases.txt | 50 ++++ docs/blueprints/who_use_cases.txt | 82 +++++++ src/covid19/blueprints/ecdc/ecdc_views.py | 226 +++++++++--------- 7 files changed, 382 insertions(+), 110 deletions(-) rename docs/blueprints/{who/useCases.txt => admin_use_cases.txt} (100%) create mode 100644 docs/blueprints/application_use_cases.txt create mode 100644 docs/blueprints/ecdc_use_cases.txt create mode 100644 docs/blueprints/owid_use_cases.txt create mode 100644 docs/blueprints/rki_vaccination_use_cases.txt create mode 100644 docs/blueprints/who_use_cases.txt diff --git a/docs/blueprints/who/useCases.txt b/docs/blueprints/admin_use_cases.txt similarity index 100% rename from docs/blueprints/who/useCases.txt rename to docs/blueprints/admin_use_cases.txt diff --git a/docs/blueprints/application_use_cases.txt b/docs/blueprints/application_use_cases.txt new file mode 100644 index 00000000..4b267021 --- /dev/null +++ b/docs/blueprints/application_use_cases.txt @@ -0,0 +1,18 @@ +@startuml +left to right direction +actor Guest as g +package Professional { + actor Chef as c + actor "Food Critic" as fc +} +package Restaurant { + usecase "Eat Food" as UC1 + usecase "Pay for Food" as UC2 + usecase "Drink" as UC3 + usecase "Review" as UC4 +} +fc --> UC4 +g --> UC1 +g --> UC2 +g --> UC3 +@enduml \ No newline at end of file diff --git a/docs/blueprints/ecdc_use_cases.txt b/docs/blueprints/ecdc_use_cases.txt new file mode 100644 index 00000000..f903f1d3 --- /dev/null +++ b/docs/blueprints/ecdc_use_cases.txt @@ -0,0 +1,66 @@ +@startuml +left to right direction +actor Visitor as vu +package user { + actor SysAdmin as su + actor Admin as au +} +package ecdc { + usecase url_ecdc_info as UC1 + usecase url_ecdc_tasks as UC2 + usecase url_ecdc_data_imported as UC3 + usecase url_ecdc_date_reported_all as UC4 + usecase url_ecdc_date_reported_one_notification_rate as UC5 + usecase url_ecdc_date_reported_one_deaths_weekly as UC6 + usecase url_ecdc_date_reported_one_cases_weekly as UC7 + usecase url_ecdc_continent_all as UC8 + usecase url_ecdc_continent_one as UC9 + usecase url_ecdc_country_all as UC10 + usecase url_ecdc_country_one as UC11 + usecase url_ecdc_country_germany as UC12 +} +package ecdc_admin_web { + usecase task_ecdc_download_only as UC50 + usecase task_who_import_only as UC51 + usecase task_who_update_dimension_tables_only as UC52 + usecase task_who_update_fact_table_initial_only as UC53 + usecase task_who_update_fact_table_incremental_only as UC54 + usecase task_who_update_star_schema_initial as UC55 + usecase task_who_update_star_schema_incremental as UC56 +} +package ecdc_tasks { + usecase task_ecdc_download_only as UC100 + usecase task_ecdc_import_only as UC101 + usecase task_ecdc_update_dimension_tables_only as UC102 + usecase task_ecdc_update_fact_table_incremental_only as UC103 + usecase task_ecdc_update_fact_table_incremental_only as UC104 + usecase task_ecdc_update_fact_table_initial_only as UC105 + usecase task_ecdc_update_star_schema_incremental as UC106 +} +vu --> UC1 +vu --> UC2 +vu --> UC3 +vu --> UC4 +vu --> UC5 +vu --> UC6 +vu --> UC7 +vu --> UC8 +vu --> UC9 +vu --> UC10 +vu --> UC11 +vu --> UC12 +au --> UC50 +au --> UC51 +au --> UC52 +au --> UC53 +au --> UC54 +au --> UC55 +au --> UC56 +UC50 --> UC100 +UC51 --> UC101 +UC52 --> UC102 +UC53 --> UC103 +UC54 --> UC104 +UC55 --> UC105 +UC56 --> UC106 +@enduml \ No newline at end of file diff --git a/docs/blueprints/owid_use_cases.txt b/docs/blueprints/owid_use_cases.txt new file mode 100644 index 00000000..0654cfe6 --- /dev/null +++ b/docs/blueprints/owid_use_cases.txt @@ -0,0 +1,50 @@ +@startuml +left to right direction +actor Visitor as vu +package user { + actor SysAdmin as su + actor Admin as au +} +package owid { + usecase url_vaccination_info as UC1 + usecase url_vaccination_tasks as UC2 + usecase url_vaccination_imported as UC3 + usecase url_vaccination_data as UC4 +} +package owid_admin_web { + usecase task_who_download_only as UC50 + usecase task_who_import_only as UC51 + usecase task_who_update_dimension_tables_only as UC52 + usecase task_who_update_fact_table_initial_only as UC53 + usecase task_who_update_fact_table_incremental_only as UC54 + usecase task_who_update_star_schema_initial as UC55 + usecase task_who_update_star_schema_incremental as UC56 +} +package owid_tasks { + usecase url_vaccination_task_download_only as UC100 + usecase url_vaccination_task_import_only as UC101 + usecase url_vaccination_task_update_dimensiontables_only as UC102 + usecase url_vaccination_task_update_facttable_incremental_only as UC103 + usecase url_vaccination_task_update_facttable_initial_only as UC104 + usecase url_vaccination_task_update_starschema_initial as UC105 + usecase url_vaccination_task_update_starschema_incremental as UC106 +} +vu --> UC1 +vu --> UC2 +vu --> UC3 +vu --> UC4 +au --> UC50 +au --> UC51 +au --> UC52 +au --> UC53 +au --> UC54 +au --> UC55 +au --> UC56 +UC50 --> UC100 +UC51 --> UC101 +UC52 --> UC102 +UC53 --> UC103 +UC54 --> UC104 +UC55 --> UC105 +UC56 --> UC106 +@enduml \ No newline at end of file diff --git a/docs/blueprints/rki_vaccination_use_cases.txt b/docs/blueprints/rki_vaccination_use_cases.txt new file mode 100644 index 00000000..20b950e7 --- /dev/null +++ b/docs/blueprints/rki_vaccination_use_cases.txt @@ -0,0 +1,50 @@ +@startuml +left to right direction +actor Visitor as vu +package user { + actor SysAdmin as su + actor Admin as au +} +package rki_vaccination { + usecase url_vaccination_info as UC1 + usecase url_vaccination_tasks as UC2 + usecase url_vaccination_imported as UC3 + usecase url_vaccination_data as UC4 +} +package rki_vaccination_admin_web { + usecase task_who_download_only as UC50 + usecase task_who_import_only as UC51 + usecase task_who_update_dimension_tables_only as UC52 + usecase task_who_update_fact_table_initial_only as UC53 + usecase task_who_update_fact_table_incremental_only as UC54 + usecase task_who_update_star_schema_initial as UC55 + usecase task_who_update_star_schema_incremental as UC56 +} +package rki_vaccination_tasks { + usecase url_vaccination_task_download_only as UC100 + usecase url_vaccination_task_import_only as UC101 + usecase url_vaccination_task_update_dimensiontables_only as UC102 + usecase url_vaccination_task_update_facttable_incremental_only as UC103 + usecase url_vaccination_task_update_facttable_initial_only as UC104 + usecase url_vaccination_task_update_starschema_initial as UC105 + usecase url_vaccination_task_update_starschema_incremental as UC106 +} +vu --> UC1 +vu --> UC2 +vu --> UC3 +vu --> UC4 +au --> UC50 +au --> UC51 +au --> UC52 +au --> UC53 +au --> UC54 +au --> UC55 +au --> UC56 +UC50 --> UC100 +UC51 --> UC101 +UC52 --> UC102 +UC53 --> UC103 +UC54 --> UC104 +UC55 --> UC105 +UC56 --> UC106 +@enduml \ No newline at end of file diff --git a/docs/blueprints/who_use_cases.txt b/docs/blueprints/who_use_cases.txt new file mode 100644 index 00000000..c238522b --- /dev/null +++ b/docs/blueprints/who_use_cases.txt @@ -0,0 +1,82 @@ +@startuml +left to right direction +actor Visitor as vu +package user { + actor SysAdmin as su + actor Admin as au +} +package who { + usecase url_who_info as UC1 + usecase url_who_tasks as UC2 + usecase url_who_imported as UC3 + usecase url_who_date_reported_all as UC4 + usecase url_who_date_reported as UC5 + usecase url_who_date_reported_cases_new as UC6 + usecase url_who_date_reported_cases_cumulative as UC7 + usecase url_who_date_reported_deaths_new as UC8 + usecase url_who_date_reported_deaths_cumulative as UC9 + usecase url_who_region_all as UC10 + usecase url_who_region as UC11 + usecase url_who_country_all as UC12 + usecase url_who_country as UC13 + usecase url_who_country_cases_new as UC14 + usecase url_who_country_cases_cumulative as UC15 + usecase url_who_country_deaths_new as UC16 + usecase url_who_country_deaths_cumulative as UC17 + usecase url_who_germany as UC18 + usecase url_who_region_all as UC19 + usecase url_who_region_all as UC20 +} +package who_admin_web { + usecase url_task_who_download_only as UC50 + usecase url_task_who_import_only as UC51 + usecase url_task_who_update_dimension_tables_only as UC52 + usecase url_task_who_update_fact_table_initial_only as UC53 + usecase url_task_who_update_fact_table_incremental_only as UC54 + usecase url_task_who_update_star_schema_initial as UC55 + usecase url_task_who_update_star_schema_incremental as UC56 +} +package who_tasks { + usecase task_who_download_only as UC100 + usecase task_who_import_only as UC101 + usecase task_who_update_dimension_tables_only as UC102 + usecase task_who_update_fact_table_initial_only as UC103 + usecase task_who_update_fact_table_incremental_only as UC104 + usecase task_who_update_star_schema_initial as UC105 + usecase task_who_update_star_schema_incremental as UC106 +} +vu --> UC1 +vu --> UC2 +vu --> UC3 +vu --> UC4 +vu --> UC5 +vu --> UC6 +vu --> UC7 +vu --> UC8 +vu --> UC9 +vu --> UC10 +vu --> UC11 +vu --> UC12 +vu --> UC13 +vu --> UC14 +vu --> UC15 +vu --> UC16 +vu --> UC17 +vu --> UC18 +vu --> UC19 +vu --> UC20 +au --> UC50 +au --> UC51 +au --> UC52 +au --> UC53 +au --> UC54 +au --> UC55 +au --> UC56 +UC50 --> UC100 +UC51 --> UC101 +UC52 --> UC102 +UC53 --> UC103 +UC54 --> UC104 +UC55 --> UC105 +UC56 --> UC106 +@enduml \ No newline at end of file diff --git a/src/covid19/blueprints/ecdc/ecdc_views.py b/src/covid19/blueprints/ecdc/ecdc_views.py index 0eccb92c..79f33d86 100644 --- a/src/covid19/blueprints/ecdc/ecdc_views.py +++ b/src/covid19/blueprints/ecdc/ecdc_views.py @@ -21,116 +21,9 @@ admin.add_view(ModelView(EcdcCountry, db.session, category="ECDC")) admin.add_view(ModelView(EcdcData, db.session, category="ECDC")) -################################################################################################################## -# -# Europe -# -################################################################################################################## - - -@celery.task(bind=True) -def task_ecdc_download_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_download_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_download_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_download_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_import_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_import_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_import_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_import_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_dimension_tables_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_dimension_tables_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_dimension_tables_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_dimension_tables_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_fact_table_incremental_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_fact_table_incremental_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_fact_table_incremental_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_fact_table_incremental_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_fact_table_incremental_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_fact_table_incremental_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_fact_table_initial_only(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_fact_table_initial_only [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_fact_table_initial_only() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_fact_table_initial_only)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_star_schema_incremental(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_star_schema_incremental [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_star_schema_incremental() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_star_schema_incremental)" - return result - - -@celery.task(bind=True) -def task_ecdc_update_star_schema_initial(self): - logger = get_task_logger(__name__) - self.update_state(state=states.STARTED) - logger.info("------------------------------------------------------------") - logger.info(" Received: task_ecdc_update_star_schema_initial [OK] ") - logger.info("------------------------------------------------------------") - ecdc_service.run_update_star_schema_initial() - self.update_state(state=states.SUCCESS) - result = "OK (task_ecdc_update_star_schema_initial)" - return result - +# --------------------------------------------------------------------------------------------------------------- +# Url Routes Frontend +# --------------------------------------------------------------------------------------------------------------- @app_ecdc.route('/info') def url_ecdc_info(): @@ -277,6 +170,119 @@ def url_ecdc_country_germany(page=1): page_info=page_info) +# ---------------------------------------------------------------------------------------------------------------- +# Celery TASKS +# ---------------------------------------------------------------------------------------------------------------- + + +@celery.task(bind=True) +def task_ecdc_download_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_download_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_download_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_download_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_import_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_import_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_import_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_import_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_dimension_tables_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_dimension_tables_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_dimension_tables_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_dimension_tables_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_fact_table_incremental_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_fact_table_incremental_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_fact_table_incremental_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_fact_table_incremental_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_fact_table_incremental_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_fact_table_incremental_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_fact_table_incremental_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_fact_table_initial_only(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_fact_table_initial_only [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_fact_table_initial_only() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_fact_table_initial_only)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_star_schema_incremental(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_star_schema_incremental [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_star_schema_incremental() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_star_schema_incremental)" + return result + + +@celery.task(bind=True) +def task_ecdc_update_star_schema_initial(self): + logger = get_task_logger(__name__) + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: task_ecdc_update_star_schema_initial [OK] ") + logger.info("------------------------------------------------------------") + ecdc_service.run_update_star_schema_initial() + self.update_state(state=states.SUCCESS) + result = "OK (task_ecdc_update_star_schema_initial)" + return result + +# ---------------------------------------------------------------------------------------------------------------- +# URL Routes for Celery TASKS +# ---------------------------------------------------------------------------------------------------------------- + + # TODO: #163 implement url_ecdc_task_update_star_schema_initial in europe_views.py @app_ecdc.route('/task/update/star_schema/initial') def url_ecdc_task_update_star_schema_initial(): -- GitLab