module Kameleoon::Targeting::ConditionFactory

def get_condition(condition_json)

def get_condition(condition_json)
  case condition_json['targetingType']
  when ConditionType::CUSTOM_DATUM
    CustomDatum.new(condition_json)
  when ConditionType::TARGET_FEATURE_FLAG
    TargetFeatureFlagCondition.new(condition_json)
  when ConditionType::EXCLUSIVE_FEATURE_FLAG
    ExclusiveFeatureFlagCondition.new(condition_json)
  when ConditionType::PAGE_URL
    PageUrlCondition.new(condition_json)
  when ConditionType::PAGE_VIEWS
    PageViewNumberCondition.new(condition_json)
  when ConditionType::PREVIOUS_PAGE
    PreviousPageCondition.new(condition_json)
  when ConditionType::PAGE_TITLE
    PageTitleCondition.new(condition_json)
  when ConditionType::VISITOR_CODE
    VisitorCodeCondition.new(condition_json)
  when ConditionType::DEVICE_TYPE
    DeviceCondition.new(condition_json)
  when ConditionType::CONVERSIONS
    ConversionCondition.new(condition_json)
  when ConditionType::BROWSER
    BrowserCondition.new(condition_json)
  when ConditionType::SDK_LANGUAGE
    SdkLanguageCondition.new(condition_json)
  when ConditionType::GEOLOCATION
    GeolocationCondition.new(condition_json)
  when ConditionType::OPERATING_SYSTEM
    OperatingSystemCondition.new(condition_json)
  when ConditionType::COOKIE
    CookieCondition.new(condition_json)
  when ConditionType::SEGMENT
    SegmentCondition.new(condition_json)
  when ConditionType::VISITS
    VisitNumberTotalCondition.new(condition_json)
  when ConditionType::SAME_DAY_VISITS
    VisitNumberTodayCondition.new(condition_json)
  when ConditionType::NEW_VISITORS
    VisitorNewReturnCondition.new(condition_json)
  when ConditionType::FIRST_VISIT, ConditionType::LAST_VISIT
    TimeElapsedSinceVisitCondition.new(condition_json)
  when ConditionType::HEAT_SLICE
    KcsHeatRangeCondition.new(condition_json)
  else
    UnknownCondition.new(condition_json)
  end
end