module Meroku::User

Logic related to Users login, logout etc

Public Class Methods

delete_token() click to toggle source
# File lib/meroku/user.rb, line 49
def self.delete_token
  file = "#{Dir.home}/.meroku_token"
  File.delete(file) if File.exist?(file)
end
login(email, password) click to toggle source
# File lib/meroku/user.rb, line 8
def self.login(email, password)
  data = { 'email' => email, 'password' => password }.to_json
  result = RestClient.post 'https://www.meroku.com/login.json',
                           data,
                           content_type: :json
  process_error(result)
  process_success(result) { |x| save_token(x) }
end
logout() click to toggle source
# File lib/meroku/user.rb, line 22
def self.logout
  file = "#{Dir.home}/.meroku_token"
  File.delete(file)
  puts 'Logged out'
  raise Meroku::Success
end
save_token(x) click to toggle source
# File lib/meroku/user.rb, line 17
def self.save_token(x)
  token = JSON.parse(x).dig('data', 'token')
  IO.write("#{Dir.home}/.meroku_token", token) if token
end
signup(email, password) click to toggle source
# File lib/meroku/user.rb, line 29
def self.signup(email, password)
  data = { 'email' => email, 'password' => password }.to_json
  result = RestClient.post 'https://www.meroku.com/registrations.json',
                           data,
                           content_type: :json
  process_error(result)
  process_success(result) { |x| save_token(x) }
end
unregister(options) click to toggle source
# File lib/meroku/user.rb, line 38
def self.unregister(options)
  data = { 'email' => options[:email], 'password' => options[:password] }
  result = RestClient::Request.execute(
    method: :delete,
    url: 'https://www.meroku.com/registrations.json',
    headers: { params: data }
  )
  process_error(result)
  process_success(result) { delete_token }
end

Public Instance Methods

saved_token() click to toggle source
# File lib/meroku/user.rb, line 54
def saved_token
  token_path = Dir.home + '/.meroku_token'
  IO.read(token_path)
rescue StandardError => e
  raise Meroku::Error, "Login failed #{e.class}"
end