module WolfCore::Barton::Routing

def route_event_request(path:, body:, invocation_type: nil)

def route_event_request(path:, body:, invocation_type: nil)
  environment = ENV['ENVIRONMENT']
  deployable_envs = ['production', 'staging']
  if deployable_envs.include?(environment)
    function_name = PATH_TO_FUNCTION_NAME_MAPPING[path]
    raise_service_error("Function name not found for path: #{path}") if function_name.blank?
    function_name = "#{function_name}#{environment.titleize}" if environment == 'production'
    invoke_lambda(
      function_name: function_name,
      payload: body,
      invocation_type: invocation_type,
    )
  else
    domain_url = ENV['CURRENT_SAM_URL']
    async_http_post(url: "#{domain_url}/#{path}", body: body)
  end
end