module WolfCore::LambdaFunctionDataSource

def invoke(function_name:, payload:, invocation_type: nil)

def invoke(function_name:, payload:, invocation_type: nil)
  parsed_payload = JSON.generate(payload)
  invocation_type ||= 'Event'
  # use invocation_type = 'Event' to make an asynchronous call
  # use invocation_type = 'RequestResponse' to make a synchronous call
  response = @@client.invoke({
    function_name: function_name,
    invocation_type: invocation_type,
    log_type: 'Tail',
    payload: parsed_payload
  })
  return if invocation_type == 'Event'
  JSON.parse(response.payload.string)
end