class TwoFactorDevices::Devices::Registrator

class with methods for initialization and registration devices by type

Public Instance Methods

prepare_device(owner, device_type, device_attributes = {}) click to toggle source
# File lib/two_factor_devices/devices/registrator.rb, line 5
def prepare_device(owner, device_type, device_attributes = {})
  unless TwoFactorDevices.available_types.include?(device_type)
    raise ArgumentError, "Device type - #{device_type} is unknown or has no configured gateway."
  end

  device_class = DEVICE_TYPES[device_type].constantize
  device_class.new(**device_attributes.to_h.symbolize_keys.merge(owner: owner, is_confirmed: false))
end
register_device!(device) click to toggle source
# File lib/two_factor_devices/devices/registrator.rb, line 14
def register_device!(device)
  device.save!
rescue ActiveRecord::RecordInvalid, Activerecord::RecordNotSaved => e
  raise InvalidDevice, e
end