Class: EvoleapLicensing::UserState

Inherits:
Object
  • Object
show all
Defined in:
lib/evoleap_licensing/state/user_state.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash = nil) ⇒ UserState

Returns a new instance of UserState.



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/evoleap_licensing/state/user_state.rb', line 14

def initialize(hash = nil)
  hash = (hash || {}).transform_keys(&:to_s)
  @user_guid = hash["user_guid"]
  @first_launch_time = parse_time(hash["first_launch_time"])
  @registered_at = parse_time(hash["registered_at"])
  @grace_period_for_validation_failures = hash["grace_period_for_validation_failures"]
  @last_successful_validation_time = parse_time(hash["last_successful_validation_time"])
  @last_validation_status = hash["last_validation_status"]
  @number_of_failed_validation_attempts = hash["number_of_failed_validation_attempts"] || 0
  @features = hash["features"] || []
  @failed_registration_times = (hash["failed_registration_times"] || []).map { |t| parse_time(t) }.compact
  @failed_validation_times = (hash["failed_validation_times"] || []).map { |t| parse_time(t) }.compact
end

Instance Attribute Details

#failed_registration_timesObject (readonly)

Returns the value of attribute failed_registration_times.



12
13
14
# File 'lib/evoleap_licensing/state/user_state.rb', line 12

def failed_registration_times
  @failed_registration_times
end

#failed_validation_timesObject (readonly)

Returns the value of attribute failed_validation_times.



12
13
14
# File 'lib/evoleap_licensing/state/user_state.rb', line 12

def failed_validation_times
  @failed_validation_times
end

#featuresObject

Returns the value of attribute features.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def features
  @features
end

#first_launch_timeObject

Returns the value of attribute first_launch_time.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def first_launch_time
  @first_launch_time
end

#grace_period_for_validation_failuresObject

Returns the value of attribute grace_period_for_validation_failures.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def grace_period_for_validation_failures
  @grace_period_for_validation_failures
end

#last_successful_validation_timeObject

Returns the value of attribute last_successful_validation_time.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def last_successful_validation_time
  @last_successful_validation_time
end

#last_validation_statusObject

Returns the value of attribute last_validation_status.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def last_validation_status
  @last_validation_status
end

#number_of_failed_validation_attemptsObject

Returns the value of attribute number_of_failed_validation_attempts.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def number_of_failed_validation_attempts
  @number_of_failed_validation_attempts
end

#registered_atObject

Returns the value of attribute registered_at.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def registered_at
  @registered_at
end

#user_guidObject

Returns the value of attribute user_guid.



7
8
9
# File 'lib/evoleap_licensing/state/user_state.rb', line 7

def user_guid
  @user_guid
end

Instance Method Details

#add_registration_failure(time = Time.now.utc) ⇒ Object



32
33
34
# File 'lib/evoleap_licensing/state/user_state.rb', line 32

def add_registration_failure(time = Time.now.utc)
  @failed_registration_times.unshift(time)
end

#add_validation_failure(time = Time.now.utc) ⇒ Object



40
41
42
# File 'lib/evoleap_licensing/state/user_state.rb', line 40

def add_validation_failure(time = Time.now.utc)
  @failed_validation_times.unshift(time)
end

#registered?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/evoleap_licensing/state/user_state.rb', line 28

def registered?
  !@registered_at.nil?
end

#reset_registration_failuresObject



36
37
38
# File 'lib/evoleap_licensing/state/user_state.rb', line 36

def reset_registration_failures
  @failed_registration_times = []
end

#reset_validation_failuresObject



44
45
46
47
# File 'lib/evoleap_licensing/state/user_state.rb', line 44

def reset_validation_failures
  @failed_validation_times = []
  @number_of_failed_validation_attempts = 0
end

#take_registration_params(response) ⇒ Object



49
50
51
# File 'lib/evoleap_licensing/state/user_state.rb', line 49

def take_registration_params(response)
  @user_guid = response["user_guid"]
end

#to_hObject



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/evoleap_licensing/state/user_state.rb', line 53

def to_h
  {
    "user_guid" => @user_guid,
    "first_launch_time" => @first_launch_time&.iso8601,
    "registered_at" => @registered_at&.iso8601,
    "grace_period_for_validation_failures" => @grace_period_for_validation_failures,
    "last_successful_validation_time" => @last_successful_validation_time&.iso8601,
    "last_validation_status" => @last_validation_status,
    "number_of_failed_validation_attempts" => @number_of_failed_validation_attempts,
    "features" => @features,
    "failed_registration_times" => @failed_registration_times.map(&:iso8601),
    "failed_validation_times" => @failed_validation_times.map(&:iso8601)
  }
end