class QueueIt::IntegrationEvaluator
Public Instance Methods
evaluateTrigger(trigger, currentPageUrl, request)
click to toggle source
# File lib/queueit_knownuserv3/integration_config_helpers.rb, line 26 def evaluateTrigger(trigger, currentPageUrl, request) if (!trigger.key?("LogicalOperator") || !trigger.key?("TriggerParts") || !trigger["TriggerParts"].kind_of?(Array)) return false; end if(trigger["LogicalOperator"].eql? "Or") trigger["TriggerParts"].each do |triggerPart| if(!triggerPart.kind_of?(Hash)) return false end if(evaluateTriggerPart(triggerPart, currentPageUrl, request)) return true end end return false else trigger["TriggerParts"].each do |triggerPart| if(!triggerPart.kind_of?(Hash)) return false end if(!evaluateTriggerPart(triggerPart, currentPageUrl, request)) return false end end return true end end
evaluateTriggerPart(triggerPart, currentPageUrl, request)
click to toggle source
# File lib/queueit_knownuserv3/integration_config_helpers.rb, line 56 def evaluateTriggerPart(triggerPart, currentPageUrl, request) if (!triggerPart.key?("ValidatorType")) return false end case triggerPart["ValidatorType"] when "UrlValidator" return UrlValidatorHelper.evaluate(triggerPart, currentPageUrl) when "CookieValidator" return CookieValidatorHelper.evaluate(triggerPart, request.cookie_jar) when "UserAgentValidator" return UserAgentValidatorHelper.evaluate(triggerPart, request.user_agent) when "HttpHeaderValidator" return HttpHeaderValidatorHelper.evaluate(triggerPart, request.headers) else return false end end
getMatchedIntegrationConfig(customerIntegration, currentPageUrl, request)
click to toggle source
# File lib/queueit_knownuserv3/integration_config_helpers.rb, line 5 def getMatchedIntegrationConfig(customerIntegration, currentPageUrl, request) if (!customerIntegration.kind_of?(Hash) || !customerIntegration.key?("Integrations") || !customerIntegration["Integrations"].kind_of?(Array)) return nil; end customerIntegration["Integrations"].each do |integrationConfig| next if !integrationConfig.kind_of?(Hash) || !integrationConfig.key?("Triggers") || !integrationConfig["Triggers"].kind_of?(Array) integrationConfig["Triggers"].each do |trigger| if(!trigger.kind_of?(Hash)) return false end if(evaluateTrigger(trigger, currentPageUrl, request)) return integrationConfig end end end return nil end