class Flubber::Login

Attributes

api_token[R]
password[R]
phone_number[R]

Public Class Methods

login() click to toggle source
# File lib/login.rb, line 12
def self.login
  new.login
end

Public Instance Methods

login() click to toggle source
# File lib/login.rb, line 16
def login
  if logged_in?
    puts "Already logged in."
  else
    get_credentials
    get_api_token
    save_api_token
  end
end

Private Instance Methods

api_token_response() click to toggle source
# File lib/login.rb, line 52
def api_token_response
  @api_token_response ||= Faraday.post(
    "#{API_URL}/user_token",
    {
      "phone_number": phone_number,
      "password": password,
    },
  )
end
get_api_token() click to toggle source
# File lib/login.rb, line 37
def get_api_token
  if api_token_response.status == 201
    @api_token = JSON.parse(api_token_response.body)["api_token"]
  end
end
get_credentials() click to toggle source
# File lib/login.rb, line 30
def get_credentials
  print "Phone Number: "
  @phone_number = STDIN.gets.chomp
  print "Password: "
  @password = IO::console.getpass
end
logged_in?() click to toggle source
# File lib/login.rb, line 62
def logged_in?
  @logged_in ||= ApiToken.get.present?
end
save_api_token() click to toggle source
# File lib/login.rb, line 43
def save_api_token
  if api_token.present?
    ApiToken.set(api_token)
    puts "Success"
  else
    puts "Incorrect credentials"
  end
end