class ScoutMetrics::User

Attributes

active[RW]
id[RW]
return_date[RW]
signup_date[RW]

Public Class Methods

find(id) click to toggle source

Create a User record with the id passed in for posting to Scout Metrics

# File lib/scoutmetrics/user.rb, line 8
def self.find(id)
  new(id: id)
end
new(params) click to toggle source
# File lib/scoutmetrics/user.rb, line 12
def initialize(params)
  self.id = params[:id]
  self.signup_date = params[:signup_date]
  self.return_date = params[:return_date]
  self.active = params[:active]
end

Public Instance Methods

activate() click to toggle source

Activate an “AppUser” on Scout Metrics (Should we also reset their signup_date & return_date?)

# File lib/scoutmetrics/user.rb, line 42
def activate
  self.active = true
  save
end
deactivate() click to toggle source

Deactivate an “AppUser” on Scout Metrics

# File lib/scoutmetrics/user.rb, line 48
def deactivate
  self.active = false
  save
end
report_login(return_date=nil) click to toggle source

Tells Scout Metrics the latest login date for this “AppUser”

# File lib/scoutmetrics/user.rb, line 35
def report_login(return_date=nil)
  self.return_date = return_date || Time.new
  save
end
save() click to toggle source

Override save method to post the information to Scout Metrics

# File lib/scoutmetrics/user.rb, line 20
def save
  params = {}
  params[:signup_date] = signup_date if field_present?(signup_date)
  params[:return_date] = return_date if field_present?(return_date)
  params[:active] = active if field_present?(active)
  post_update(id, params)
end
signup(signup_date=nil) click to toggle source

Posts signup date for this user (if it doesn’t exist yet the “AppUser” will be created)

# File lib/scoutmetrics/user.rb, line 29
def signup(signup_date=nil)
  self.signup_date = signup_date || Time.new
  save
end

Private Instance Methods

field_blank?(field) click to toggle source
# File lib/scoutmetrics/user.rb, line 55
def field_blank?(field)
  field.nil?# || field.empty?
end
field_present?(field) click to toggle source
# File lib/scoutmetrics/user.rb, line 59
def field_present?(field)
  !field_blank?(field)
end
post_update(id, params) click to toggle source

@return [Json] Returns a msg for the transaction and the status of the request @return msg explanation of outcome

# File lib/scoutmetrics/user.rb, line 65
def post_update(id, params)
  ScoutMetrics::Request.new(:put, "/app_users/#{id}", { app_user: params })
end