@@ -144,14 +144,31 @@ def update_schema_instance(self, resource, json_instance) -> dict:
144144 handler .update_resource (resource , fieldname , json_instance , context , errors )
145145 except Exception as e :
146146 MetadataHandler ._set_error (errors , [fieldname ], f"Error while processing this field: { e } " )
147+
148+ for handler in self .handlers .values ():
149+ try :
150+ handler .pre_save (resource , json_instance , context , errors )
151+ except Exception as e :
152+ err = f"Error in pre_save: handler { handler .__class__ .__name__ } "
153+ logger .error (err , exc_info = e )
154+ MetadataHandler ._set_error (errors , [], f"{ err } : { e } " )
155+
147156 try :
148157 resource .save ()
149158 except Exception as e :
150159 logger .warning (f"Error while updating schema instance: { e } " )
151160 MetadataHandler ._set_error (errors , [], f"Error while saving the resource: { e } " )
152161
162+ for handler in self .handlers .values ():
163+ try :
164+ handler .post_save (resource , json_instance , context , errors )
165+ except Exception as e :
166+ err = f"Error in post_save: handler { handler .__class__ .__name__ } "
167+ logger .error (err , exc_info = e )
168+ MetadataHandler ._set_error (errors , [], f"{ err } : { e } " )
169+
153170 # TESTING ONLY
154- if "error " in resource .title .lower ():
171+ if "_error_ " in resource .title .lower ():
155172 _create_test_errors (schema , errors , [], "TEST: field <{schema_type}>'{path}' PUT request" )
156173
157174 return errors
0 commit comments