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 = ENV['ENVIRONMENT']
        if environment == 'production'
          function_name = PATH_TO_FUNCTION_NAME_MAPPING[path]
          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