Class: TrueandcoAnalytics::Site::SessionC::Create

Inherits:
Object
  • Object
show all
Defined in:
lib/trueandco_analytics/site/commands/session_c/create.rb

Instance Method Summary collapse

Constructor Details

#initialize(metric_user, first_point, timestamp_end, request_info) ⇒ Create

Returns a new instance of Create.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/trueandco_analytics/site/commands/session_c/create.rb', line 3

def initialize(metric_user, first_point, timestamp_end, request_info)

  if metric_user.nil? || first_point.nil? || timestamp_end.nil? ||request_info.nil?
    raise ArgumentError.new("#{self.to_s} metric_user=#{metric_user}
        first_point=#{first_point} timestamp_end=#{timestamp_end} request_info=#{request_info}")
  end

  @metric_user = metric_user
  @ip = request_info['remote_ip']
  @user_agent = request_info['user_agent']
  @session_start = first_point['time']['timestamp']
  @referer = first_point['userReferrer']
  @live_time_s = timestamp_end - @session_start
end

Instance Method Details

#executeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/trueandco_analytics/site/commands/session_c/create.rb', line 18

def execute
  Browser::Base.include(Browser::Aliases)
  browser = Browser.new(user_agent, accept_language: "en-us")
  data = {
      metric_user: metric_user,
      user_agent: user_agent,
      referer: referer,
      session_start: datetime_session_start,
      live_time_s: 60,
      ip_4: ip_v4(ip),
      ip_6: ip_v6(ip),
      browser: browser.name,
      is_mobile: browser.mobile? || false
  }
  ::TrueandcoAnalytics::MetricUserSession.create(data)
end