demarches-normaliennes/app/jobs/migrations/batch_update_datetime_values_job.rb
2024-02-12 09:33:17 +01:00

24 lines
701 B
Ruby

class Migrations::BatchUpdateDatetimeValuesJob < ApplicationJob
def perform(ids)
Champs::DatetimeChamp.where(id: ids).find_each do |datetime_champ|
current_value_in_time = Time.zone.parse(datetime_champ.value)
if current_value_in_time.present?
datetime_champ.update_columns(value: current_value_in_time.iso8601)
else
update_value_to_nil_if_possible(datetime_champ)
end
rescue TypeError
update_value_to_nil_if_possible(datetime_champ)
end
end
private
def update_value_to_nil_if_possible(datetime_champ)
return if datetime_champ.value.nil?
datetime_champ.update_columns(value: nil) unless datetime_champ.required?
end
end