class VWO::Services::EventDispatcher

Constants

EXCLUDE_KEYS

Public Class Methods

new(is_development_mode = false) click to toggle source

Initialize the dispatcher with logger and development mode

@param [Boolean] : To specify whether the request

to our server should be made or not.
# File lib/vwo/services/event_dispatcher.rb, line 31
def initialize(is_development_mode = false)
  @logger = VWO::Logger.get_instance
  @is_development_mode = is_development_mode
end

Public Instance Methods

dispatch(impression) click to toggle source

Dispatch the impression event having properties object only if dev-mode is OFF

@param :properties hash having impression properties

the request to be dispatched to the VWO server

@return

# File lib/vwo/services/event_dispatcher.rb, line 42
def dispatch(impression)
  return true if @is_development_mode

  modified_event = impression.reject do |key, _value|
    EXCLUDE_KEYS.include?(key)
  end

  resp = VWO::Utils::Request.get(impression['url'], modified_event)
  if resp.code == '200'
    true
  else
    @logger.log(
      LogLevelEnum::ERROR,
      format(LogMessageEnum::ErrorMessages::IMPRESSION_FAILED, file: FileNameEnum::EventDispatcher, end_point: impression['url'])
    )
    false
  end
rescue StandardError
  @logger.log(
    LogLevelEnum::ERROR,
    format(LogMessageEnum::ErrorMessages::IMPRESSION_FAILED, file: FileNameEnum::EventDispatcher, end_point: impression['url'])
  )
  false
end