lib/wolf_core/application/integrations/routing_operations.rb
module WolfCore module Integrations module RoutingOperations include WolfCore::HttpOperations include WolfCore::LambdaFunctionOperations include WolfCore::ExceptionOperations def route_event_request(path:, body:, environment:, domain_url: nil, path_to_function_name_mapping:) environment ||= 'development' environment = environment.downcase deployable_envs = ['production', 'staging', 'testing'] if deployable_envs.include?(environment) function_name = "#{path_to_function_name_mapping[path]}#{environment.titleize}" raise_service_error("Function name not found for path: #{path}") if function_name.blank? invoke_lambda( function_name: function_name, payload: body, ) else domain_url ||= ENV['CURRENT_SAM_URL'] async_http_post(url: "#{domain_url}/#{path}", body: body) end end end end end