class VWO::Services::BatchEventsDispatcher
Public Class Methods
new()
click to toggle source
Initialize the BatchEventDispatcher with logger and development mode
@param [Boolean] : To specify whether the request
to our server should be made or not.
# File lib/vwo/services/batch_events_dispatcher.rb, line 27 def initialize @logger = VWO::Logger.get_instance @queue = [] end
Public Instance Methods
dispatch(impression, callback, query_params)
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
# File lib/vwo/services/batch_events_dispatcher.rb, line 38 def dispatch(impression, callback, query_params) url = CONSTANTS::HTTPS_PROTOCOL + CONSTANTS::ENDPOINTS::BASE_URL + CONSTANTS::ENDPOINTS::BATCH_EVENTS account_id = query_params[:a] resp = VWO::Utils::Request.post(url, query_params, impression) if resp.code == '200' @logger.log( LogLevelEnum::INFO, format( LogMessageEnum::InfoMessages::BULK_IMPRESSION_SUCCESS, file: FileNameEnum::BatchEventsDispatcher, end_point: url, a: account_id ) ) message = nil elsif resp.code == '413' @logger.log( LogLevelEnum::DEBUG, format( LogMessageEnum::DebugMessages::BATCH_EVENT_LIMIT_EXCEEDED, file: FileNameEnum::BatchEventsDispatcher, end_point: url, accountId: impression[:a], eventsPerRequest: impression.length() ) ) @logger.log( LogLevelEnum::ERROR, format( LogMessageEnum::ErrorMessages::IMPRESSION_FAILED, file: FileNameEnum::BatchEventsDispatcher, end_point: url ) ) message = resp.message else @logger.log( LogLevelEnum::DEBUG, format( LogMessageEnum::DebugMessages::BULK_NOT_PROCESSED, file: FileNameEnum::BatchEventsDispatcher ) ) @logger.log( LogLevelEnum::ERROR, format(LogMessageEnum::ErrorMessages::IMPRESSION_FAILED, file: FileNameEnum::BatchEventsDispatcher, end_point: url) ) message = resp.message end if callback callback.call(message, impression) end rescue StandardError => e @logger.log( LogLevelEnum::DEBUG, format( LogMessageEnum::DebugMessages::BULK_NOT_PROCESSED, file: FileNameEnum::BatchEventsDispatcher ) ) @logger.log( LogLevelEnum::ERROR, format(LogMessageEnum::ErrorMessages::IMPRESSION_FAILED, file: FileNameEnum::BatchEventsDispatcher, end_point: url) ) false end