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