From 29de011229ccb198e6a7d9c4ff63ae10716b2340 Mon Sep 17 00:00:00 2001 From: scopesorting Date: Tue, 12 Dec 2023 17:07:09 +0100 Subject: [PATCH] partial commit of integrating the input validation (references and mandatory fields) --- src/server/BreCal/__init__.py | 1 + src/server/BreCal/database/update_database.py | 1 - src/server/BreCal/impl/shipcalls.py | 22 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/server/BreCal/__init__.py b/src/server/BreCal/__init__.py index eb832f5..1f37ffc 100644 --- a/src/server/BreCal/__init__.py +++ b/src/server/BreCal/__init__.py @@ -46,6 +46,7 @@ def create_app(test_config=None): app.config.from_mapping(test_config) try: + import os print(f'Instance path = {app.instance_path}') os.makedirs(app.instance_path) except OSError: diff --git a/src/server/BreCal/database/update_database.py b/src/server/BreCal/database/update_database.py index 0e5e5ac..7b7639b 100644 --- a/src/server/BreCal/database/update_database.py +++ b/src/server/BreCal/database/update_database.py @@ -68,7 +68,6 @@ def evaluate_shipcall_state(mysql_connector_instance, shipcall_id:int=None, debu with mysql.connector.connect(**mysql_connection_data) as mysql_connector_instance: evaluate_shipcall_state(mysql_connector_instance) returns None - """ sql_handler = SQLHandler(sql_connection=mysql_connector_instance, read_all=True) vr = ValidationRules(sql_handler) diff --git a/src/server/BreCal/impl/shipcalls.py b/src/server/BreCal/impl/shipcalls.py index 59f9311..8d15983 100644 --- a/src/server/BreCal/impl/shipcalls.py +++ b/src/server/BreCal/impl/shipcalls.py @@ -123,6 +123,17 @@ def PostShipcalls(schemaModel): query += "?" + param_key + "?" query += ")" + # #TODO: enter completeness validation here. Only shipcalls, where all required fields are filled in are valid + # "Pflichtfelder: z.B. die Felder bei der Neuanlage eines shipcalls müssen entsprechend des Anlauf-Typs belegt sein, damit gespeichert werden kann" - Daniel Schick + + # #TODO: enter role validation here. Only users of correct type should be allowed to post a shipcall + + # #TODO: enter reference validation here + # full_id_existances = check_id_existances(mysql_connector_instance=sql_connection, schemaModel=schemaModel, debug=False) + # if not full_id_existances: + # pooledConnection.close() + # return json.dumps({"message" : "call failed. missing mandatory keywords."}), 500, {'Content-Type': 'application/json; charset=utf-8'} + commands.execute(query, schemaModel) new_id = commands.execute_scalar("select last_insert_id()") @@ -206,6 +217,17 @@ def PutShipcalls(schemaModel): query += key + " = ?" + param_key + "? " query += "WHERE id = ?id?" + + # #TODO: enter role validation here. + + # #TODO: enter completeness validation here. Only shipcalls, where all required fields are filled in are valid + + + # #TODO: enter reference validation here + # full_id_existances = check_id_existances(mysql_connector_instance=sql_connection, schemaModel=schemaModel, debug=False) + # if not full_id_existances: + # return ... (500) + affected_rows = commands.execute(query, param=schemaModel) pquery = "SELECT id, participant_id, type FROM shipcall_participant_map where shipcall_id = ?id?"