4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'app/services/asyncapi/client/update_job.rb', line 4
def self.execute(job:, params:)
sanitized_params = params.reject { |key, value| key.to_sym == :status }
job.assign_attributes(sanitized_params)
status = params[:status]
if may_transition?(job, to: status)
transition(job, to: status)
if job.status_changed? && job.save
ActiveRecord::Base.after_transaction do
JobStatusWorker.perform_async(job.id)
end
else
job.save
end
elsif !may_transition?(job, to: status) && job.status == status
job.save
end
end
|