module AWS::Flow::Utilities::SelfMethods

@api private

Public Instance Methods

handle_event(event, options) click to toggle source

@api private

# File lib/aws/decider/utilities.rb, line 278
def handle_event(event, options)
  id = options[:id_lambda].call(event) if options[:id_lambda]
  id = event.attributes
  options[:id_methods].each {|method| id = id.send(method)}
  id = options[:id_methods].reduce(event.attributes, :send)
  id = @decision_helper.send(options[:decision_helper_id])[id] if options[:decision_helper_id]
  state_machine = @decision_helper[id]
  state_machine.consume(options[:consume_symbol])
  if options[:decision_helper_scheduled]
    if state_machine.done?
      scheduled_array = options[:decision_helper_scheduled]
      open_request = @decision_helper.send(scheduled_array).delete(id)
    else
      scheduled_array = options[:decision_helper_scheduled]
      open_request = @decision_helper.send(scheduled_array)[id]
    end
    if options[:handle_open_request]
      options[:handle_open_request].call(event, open_request)
    end
  end
  return state_machine.done?
end