lib/wolf_core/application/integrations/routing_operations.rb
module WolfCore module Integrations module RoutingOperations include WolfCore::HttpOperations include WolfCore::LambdaFunctionOperations include WolfCore::ExceptionOperations PATH_TO_FUNCTION_NAME_MAPPING = { 'burnett/jobseekers/export' => 'BurnettExportJobseeker', 'burnett/jobseekers/import' => 'BurnettImportJobseeker', 'burnett/orders/export' => 'BurnettExportOrder', 'burnett/order_applications/export' => 'BurnettExportOrderApplication', 'burnett/clients/import' => 'BurnettImportClient', 'burnett/clients/bulk_import' => 'BurnettBulkImportClients', 'burnett/clients/export' => 'BurnettExportClient', } def route_event_request(path:, body:, environment:, domain_url: nil) environment ||= 'development' environment = environment.downcase deployable_envs = ['production', 'staging', 'testing'] puts '-------------------------------------------------------' puts "environment = #{environment}" puts "deployable_envs = #{deployable_envs}" puts "deployable_envs.include?(environment) = #{deployable_envs.include?(environment)}" puts '-------------------------------------------------------' 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