From d4244744b9e87f51de3b55b8e40bce48070ee892 Mon Sep 17 00:00:00 2001 From: yuanzhou Date: Wed, 24 Sep 2025 22:28:24 -0400 Subject: [PATCH 1/2] Add log and comment for internal _commit_files() to avoid confusion --- src/schema/schema_manager.py | 1 + src/schema/schema_triggers.py | 1 + 2 files changed, 2 insertions(+) diff --git a/src/schema/schema_manager.py b/src/schema/schema_manager.py index a36f6ed1..a55d1888 100644 --- a/src/schema/schema_manager.py +++ b/src/schema/schema_manager.py @@ -512,6 +512,7 @@ def generate_triggered_data(trigger_type: TriggerTypeEnum, normalized_class, req # within this dictionary and return it so it can be saved in the scope of this loop and # passed to other 'updated_peripherally' triggers if 'updated_peripherally' in properties[key] and properties[key]['updated_peripherally']: + # Such trigger methods get executed but really do nothing internally trigger_generated_data_dict = trigger_method_to_call(key, normalized_class, request, user_token, existing_data_dict, new_data_dict, trigger_generated_data_dict) else: target_key, target_value = trigger_method_to_call(key, normalized_class, request, user_token, existing_data_dict, new_data_dict) diff --git a/src/schema/schema_triggers.py b/src/schema/schema_triggers.py index 5ac47b2c..4445718e 100644 --- a/src/schema/schema_triggers.py +++ b/src/schema/schema_triggers.py @@ -2379,6 +2379,7 @@ def _commit_files(target_property_key, property_key, normalized_type, request, u # For metadata files the property name is "metadata_files_to_add" # But other may be used in the future if (not property_key in new_data_dict) or (not new_data_dict[property_key]): + logger.info(f"Do nothing with the internal trigger method _commit_files() because {property_key} not found in request payload") return generated_dict #If POST or PUT where the target doesn't exist create the file info array From 89e65c16854df34d7c6f2cf33c9f15c1e9076b8b Mon Sep 17 00:00:00 2001 From: yuanzhou Date: Thu, 25 Sep 2025 13:57:44 -0400 Subject: [PATCH 2/2] Better none and exist check --- src/schema/schema_manager.py | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/schema/schema_manager.py b/src/schema/schema_manager.py index a55d1888..a1dff4ad 100644 --- a/src/schema/schema_manager.py +++ b/src/schema/schema_manager.py @@ -417,10 +417,8 @@ def generate_triggered_data(trigger_type: TriggerTypeEnum, normalized_class, req # Get the target trigger method defined in the schema_triggers.py module trigger_method_to_call = getattr(schema_triggers, trigger_method_name) - if 'uuid' in existing_data_dict: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {existing_data_dict['uuid']}") - else: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class}") + target_uuid = existing_entity_dict['uuid'] if existing_entity_dict and 'uuid' in existing_entity_dict else ''; + logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {target_uuid}") # No return values for 'after_create_trigger' and 'after_update_trigger' # because the property value is already set and stored in neo4j @@ -443,11 +441,9 @@ def generate_triggered_data(trigger_type: TriggerTypeEnum, normalized_class, req trigger_method_name = properties[key][trigger_type.value] try: trigger_method_to_call = getattr(schema_triggers, trigger_method_name) - - if 'uuid' in existing_data_dict: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {existing_data_dict['uuid']}") - else: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class}") + + target_uuid = existing_entity_dict['uuid'] if existing_entity_dict and 'uuid' in existing_entity_dict else ''; + logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {target_uuid}") # Will set the trigger return value as the property value by default # Unless the return value is to be assigned to another property different target key @@ -494,10 +490,8 @@ def generate_triggered_data(trigger_type: TriggerTypeEnum, normalized_class, req try: trigger_method_to_call = getattr(schema_triggers, trigger_method_name) - if 'uuid' in existing_data_dict: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {existing_data_dict['uuid']}") - else: - logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class}") + target_uuid = existing_entity_dict['uuid'] if existing_entity_dict and 'uuid' in existing_entity_dict else ''; + logger.info(f"To run {trigger_type.value}: {trigger_method_name} for {normalized_class} {target_uuid}") # Will set the trigger return value as the property value by default # Unless the return value is to be assigned to another property different target key @@ -1043,10 +1037,8 @@ def execute_entity_level_validator(validator_type, normalized_entity_type, reque # Get the target validator method defined in the schema_validators.py module validator_method_to_call = getattr(schema_validators, validator_method_name) - if 'uuid' in existing_entity_dict: - logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type} {existing_entity_dict['uuid']}") - else: - logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type}") + target_uuid = existing_entity_dict['uuid'] if existing_entity_dict and 'uuid' in existing_entity_dict else ''; + logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type} {target_uuid}") # Create a dictionary to hold data need by any entity validator, which must be populated # with validator specific requirements when the method to be called is determined. @@ -1111,10 +1103,8 @@ def execute_property_level_validators(validator_type, normalized_entity_type, re # Get the target validator method defined in the schema_validators.py module validator_method_to_call = getattr(schema_validators, validator_method_name) - if 'uuid' in existing_data_dict: - logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type} {existing_data_dict['uuid']} on property {key}") - else: - logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type} on property {key}") + target_uuid = existing_entity_dict['uuid'] if existing_entity_dict and 'uuid' in existing_entity_dict else ''; + logger.info(f"To run {validator_type}: {validator_method_name} for {normalized_entity_type} {target_uuid} on property {key}") validator_method_to_call(key, normalized_entity_type, request, existing_data_dict, new_data_dict) except schema_errors.MissingApplicationHeaderException as e: