Class: TrueandcoAnalytics::Site::UserSessionMetricWorker

Inherits:
Object
  • Object
show all
Includes:
Sidekiq::Worker
Defined in:
lib/trueandco_analytics/site/workers/user_session_metric_worker.rb

Instance Method Summary collapse

Instance Method Details

#perform(*args) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/trueandco_analytics/site/workers/user_session_metric_worker.rb', line 6

def perform(*args)
  info_pages, info_request = args[0], args[1]
  @redis = ::TrueandcoAnalytics::RedisConnect.get
  user_session_data_json = @redis.lrange(info_pages, 0, -1)
  return if user_session_data_json.nil?
  user_session_data = ArrJsonsToArrHash.new(user_session_data_json).execute
  return unless user_session_data.any?
  first_point = user_session_data[0]
  last_point = user_session_data[-1]
  metric_user = UserC::CreateOrUpdateUserIfExist.new(info_request, last_point['time']['timestamp']).execute
  session = SessionC::Create.new(metric_user, first_point, last_point['time']['timestamp'], info_request).execute
  MetricC::AddList.new(metric_user, session, user_session_data).execute
end