@@ -4,6 +4,7 @@ module Runtimes
44 module DataTypes
55 class UpdateService
66 include Sagittarius ::Database ::Transactional
7+ include Code0 ::ZeroTrack ::Loggable
78
89 attr_reader :current_runtime , :data_types
910
@@ -18,14 +19,22 @@ def execute
1819 DataType . where ( runtime : current_runtime ) . update_all ( removed_at : Time . zone . now )
1920 # rubocop:enable Rails/SkipsModelValidations
2021 sort_data_types ( data_types ) . each do |data_type |
21- unless update_datatype ( data_type , t )
22- t . rollback_and_return! ServiceResponse . error ( message : 'Failed to update data type' ,
23- error_code : :invalid_data_type , details : data_type . errors )
24- end
22+ db_data_type = update_datatype ( data_type , t )
23+ next if db_data_type . persisted?
24+
25+ logger . error ( message : 'Failed to update data type' ,
26+ runtime_id : current_runtime . id ,
27+ data_type_identifier : data_type . identifier ,
28+ errors : db_data_type . errors . full_messages )
29+
30+ t . rollback_and_return! ServiceResponse . error ( message : 'Failed to update data type' ,
31+ error_code : :invalid_data_type , details : db_data_type . errors )
2532 end
2633
2734 UpdateRuntimeCompatibilityJob . perform_later ( { runtime_id : current_runtime . id } )
2835
36+ logger . info ( message : 'Updated data types for runtime' , runtime_id : current_runtime . id )
37+
2938 ServiceResponse . success ( message : 'Updated data types' , payload : data_types )
3039 end
3140 end
@@ -80,6 +89,7 @@ def update_datatype(data_type, t)
8089 db_object . generic_keys = data_type . generic_keys . to_a
8190 db_object . version = "#{ data_type . version . major } .#{ data_type . version . minor } .#{ data_type . version . patch } "
8291 db_object . save
92+ db_object
8393 end
8494
8595 def find_data_type_identifier ( parent_type_rule_config , t )
0 commit comments