class Authful::User

Attributes

email[RW]
error[RW]
phone[RW]
qr_code[RW]
token[RW]

Public Class Methods

[](token) click to toggle source
# File lib/authful/user.rb, line 5
def self.[](token)
  self.new(token: token)
end
create!(args) click to toggle source
# File lib/authful/user.rb, line 34
def self.create!(args)
  self.new(args).save
end
new(args) click to toggle source
# File lib/authful/user.rb, line 9
def initialize(args)
  args.each do |k,v|
    instance_variable_set("@#{k}", v) unless v.nil?
  end
end

Public Instance Methods

destroy() click to toggle source
# File lib/authful/user.rb, line 38
def destroy
  delete("/api/users/#{token}")["ok"] == 1
end
save() click to toggle source
# File lib/authful/user.rb, line 15
def save
  r = post("/api/users", {email: email, phone: phone})
  self.qr_code = r["qr_code"]
  self.token = r["token"]
rescue
  if Authful::Errors::IncorrectApiToken === $!
    raise Authful::Errors::IncorrectApiToken
  elsif $!.http_code == 409 # Catch duplicate user -- already enrolled
    r = JSON.parse($!.response)
    self.token = r["token"]
  elsif $!.http_code == 400
    r = JSON.parse($!.response)
    self.error = r["error"]
    false
  else
    raise $!
  end
end
send_sms() click to toggle source
# File lib/authful/user.rb, line 42
def send_sms
  get("/api/users/#{token}/send_sms")["ok"] == 1
rescue
  if Authful::Errors::IncorrectApiToken === $!
    raise Authful::Errors::IncorrectApiToken
  elsif $!.http_code == 400
    r = JSON.parse($!.response)
    self.error = r["error"]
    false
  else
    raise $!
  end
end
valid?(otp_token) click to toggle source
# File lib/authful/user.rb, line 56
def valid?(otp_token)
  get("/api/users/#{token}/validate?token=#{otp_token}")["ok"] == 1
rescue
  if Authful::Errors::IncorrectApiToken === $!
    raise Authful::Errors::IncorrectApiToken
  elsif $!.http_code == 403
    r = JSON.parse($!.response)
    self.error = r["error"]
    false
  else
    raise $!
  end
end