lib/legion/extensions/transformer/runners/transform.rb in lex-transformer-0.1.1 vs lib/legion/extensions/transformer/runners/transform.rb in lex-transformer-0.1.2

- old
+ new

@@ -15,38 +15,43 @@ if payload.key?(:task_id) && transformation.include?('task') variables[:task] = Legion::Data::Model::Task[payload[:task_id]] end payload[:args] = from_json(template.render(self, variables)) - if payload[:args].is_a? Hash + case payload[:args] + when Hash unless payload[:task_id].nil? task_update(payload[:task_id], 'transformer.succeeded', function_args: payload[:args]) end - send_task(payload) - elsif payload[:args].is_a? Array + send_task(**payload) + when Array payload[:args].each do |thing| new_payload = payload - task = Legion::Runner::Status.generate_task_id(function_args: thing, status: 'task.queued', args: thing, **new_payload) + task = Legion::Runner::Status.generate_task_id(function_args: thing, + status: 'task.queued', + args: thing, + **new_payload) new_payload[:task_id] = task[:task_id] new_payload[:args] = thing send_task(**new_payload) end - task_update(payload[:task_id], 'task.multiplied', function_args: payload[:args]) unless payload[:task_id].nil? + unless payload[:task_id].nil? + task_update(payload[:task_id], + 'task.multiplied', + function_args: payload[:args]) + end end task_update(payload[:task_id], 'task.queued') unless payload[:task_id].nil? if payload[:debug] && payload.key?(:task_id) generate_task_log(task_id: payload[:task_id], function: 'transform', values: payload) end { success: true, **payload } - # rescue => ex - # task_update(payload[:task_id], 'transformer.exception') unless payload[:task_id].nil? - # raise ex end def self.send_task(**opts) payload = {} - %i[task_id relationship_id trigger_function_id runner_class function_id function chain_id debug args].each do |thing| + %i[task_id relationship_id trigger_function_id runner_class function_id function chain_id debug args].each do |thing| # rubocop:disable Layout/LineLength payload[thing] = opts[thing] if opts.key? thing end Legion::Extensions::Transformer::Transport::Messages::Message.new(**payload).publish end