Class: QueueIt::IntegrationEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/queueit_knownuserv3/integration_config_helpers.rb

Instance Method Summary collapse

Instance Method Details

#evaluateTrigger(trigger, currentPageUrl, request) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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