class Trusona::Resources::Trusonafication
Represents a Trusonafication
resource
Attributes
accepted_level[RW]
action[RW]
callback_url[RW]
custom_fields[RW]
device_identifier[RW]
email[RW]
expires_at[RW]
id[RW]
level[RW]
prompt[RW]
resource[RW]
trucode_id[RW]
trusona_id[RW]
user_identifier[RW]
user_presence[RW]
Public Class Methods
new(params = {})
click to toggle source
rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength
# File lib/trusona/resources/trusonafication.rb, line 19 def initialize(params = {}) @params = normalize_keys(params) return if @params.nil? self.accepted_level = determine_accepted_level(@params) self.action = @params[:action] self.device_identifier = @params[:device_identifier] self.user_identifier = @params[:user_identifier] self.trucode_id = @params[:trucode_id] self.email = @params[:email] self.expires_at = normalize_time(@params[:expires_at]) self.id = @params[:id] self.level = @params[:level] self.resource = @params[:resource] self.trusona_id = @params[:trusona_id] self.prompt = defaulting_to(true, @params[:prompt]) self.user_presence = defaulting_to(true, @params[:user_presence]) self.custom_fields = @params[:custom_fields] self.callback_url = @params[:callback_url] @status = @params[:status] end
Public Instance Methods
accepted?()
click to toggle source
rubocop:enable Metrics/MethodLength
# File lib/trusona/resources/trusonafication.rb, line 70 def accepted? return true if status == :accepted return true if status == :accepted_at_higher_level false end
rejected?()
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 77 def rejected? !accepted? end
status()
click to toggle source
rubocop:disable Metrics/MethodLength rubocop:disable Metrics/CyclomaticComplexity
# File lib/trusona/resources/trusonafication.rb, line 87 def status case @status when 'INVALID_TRUSONA_ID' :invalid_trusona_id when 'IN_PROGRESS' :in_progress when 'REJECTED' :rejected when 'ACCEPTED' :accepted when 'INVALID_EMAIL' :invalid_email when 'ACCEPTED_AT_LOWER_LEVEL' :accepted_at_lower_level when 'ACCEPTED_AT_HIGHER_LEVEL' :accepted_at_higher_level when 'EXPIRED' :expired else :invalid end end
to_h()
click to toggle source
rubocop:enable Metrics/MethodLength rubocop:enable Metrics/AbcSize
# File lib/trusona/resources/trusonafication.rb, line 44 def to_h @params end
to_json(*_args)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/trusona/resources/trusonafication.rb, line 49 def to_json(*_args) JSON( device_identifier: device_identifier, user_identifier: user_identifier, trucode_id: trucode_id, trusona_id: trusona_id, email: email, resource: resource, action: action, desired_level: level, id: id, status: @status, prompt: prompt, user_presence: user_presence, custom_fields: custom_fields, expires_at: expires_at&.iso8601, callback_url: callback_url ) end
valid?()
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 81 def valid? attributes_present && attributes_filled end
Private Instance Methods
attributes_filled()
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 134 def attributes_filled return false if identifier.empty? return false if resource.empty? return false if action.empty? true end
attributes_present()
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 125 def attributes_present return false if identifier.nil? return false if resource.nil? return false if action.nil? return false if level.nil? true end
defaulting_to(value, param)
click to toggle source
rubocop:enable Metrics/CyclomaticComplexity rubocop:enable Metrics/MethodLength
# File lib/trusona/resources/trusonafication.rb, line 114 def defaulting_to(value, param) return value if param.nil? return value if param.respond_to?(:empty?) && param.empty? param end
determine_accepted_level(params)
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 121 def determine_accepted_level(params) params[:result][:accepted_level] unless params[:result].nil? end
identifier()
click to toggle source
# File lib/trusona/resources/trusonafication.rb, line 142 def identifier device_identifier || user_identifier || trucode_id || trusona_id || email end