Class: TrueandcoAnalytics::Site::UserC::CreateOrUpdateUserIfExist

Inherits:
Object
  • Object
show all
Defined in:
lib/trueandco_analytics/site/commands/user_c/create_or_update_user_if_exist.rb

Instance Method Summary collapse

Constructor Details

#initialize(user_agent, timestamp_end) ⇒ CreateOrUpdateUserIfExist

Returns a new instance of CreateOrUpdateUserIfExist.



4
5
6
7
8
9
10
11
# File 'lib/trueandco_analytics/site/commands/user_c/create_or_update_user_if_exist.rb', line 4

def initialize(user_agent, timestamp_end)
  if user_agent.nil? || user_agent.empty? || timestamp_end.nil?
    raise ArgumentError.new("#{self.to_s} user_agent=#{user_agent} timestamp_end=#{timestamp_end}")
  end
  @user_agent = user_agent['user_agent']
  @timestamp_end = timestamp_end
  @user_id =  user_agent['user_id']
end

Instance Method Details

#executeObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/trueandco_analytics/site/commands/user_c/create_or_update_user_if_exist.rb', line 13

def execute
  user = nil
  user = ::TrueandcoAnalytics::MetricUser.find_by(user_id: user_id) if user_id
  user = ::TrueandcoAnalytics::MetricUser.find_by(hash_id: hash_id) if user.nil?
  user = if user.nil?
           ::TrueandcoAnalytics::MetricUser.create(user_id: user_id || 0, datetime_create: datetime_end,
                                                 last_active_datetime: datetime_end, hash_id: hash_id)
         else
           user.update_attributes(last_active_datetime: datetime_end, user_id: @user_id)
           user
         end
  user
end