demarches-normaliennes/app/jobs/migrations/batch_update_datetime_values_job.rb
2024-08-22 09:26:48 +02:00

26 lines
732 B
Ruby

# frozen_string_literal: true
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