class Nubank

Constants

VERSION

Attributes

conn[R]

Public Class Methods

new(cpf, password) click to toggle source
# File lib/nubank.rb, line 16
def initialize(cpf, password)
  @cpf = cpf
  @password = password
  @conn = Faraday.new(url: NUBANK_URL)
  services
end

Public Instance Methods

account() click to toggle source
# File lib/nubank.rb, line 23
def account
  JSON.parse(account_request.body)['account']
end
bills_summary() click to toggle source
# File lib/nubank.rb, line 27
def bills_summary
  JSON.parse(bills_summary_request.body)['bills']
end
events() click to toggle source
# File lib/nubank.rb, line 31
def events
  JSON.parse(events_request.body)['events']
end
login() click to toggle source
# File lib/nubank.rb, line 35
def login
  @login ||= JSON.parse(login_request.body)
end
logout() click to toggle source
# File lib/nubank.rb, line 39
def logout
  logout_request
  @conn = nil
end
services() click to toggle source
# File lib/nubank.rb, line 44
def services
  @services ||= JSON.parse(discovery_request.body)
end
urls() click to toggle source
# File lib/nubank.rb, line 48
def urls
  @login['_links']
end

Private Instance Methods

account_request() click to toggle source
# File lib/nubank.rb, line 54
def account_request
  make_get_request(urls['account']['href'])
end
auth_headers() click to toggle source
# File lib/nubank.rb, line 91
def auth_headers
  @auth_headers ||= begin
    access_token = login['access_token']
    HEADERS.merge('Authorization' => "Bearer #{access_token}")
  end
end
bills_summary_request() click to toggle source
# File lib/nubank.rb, line 58
def bills_summary_request
  make_get_request(urls['bills_summary']['href'])
end
discovery_request() click to toggle source
# File lib/nubank.rb, line 62
def discovery_request
  @conn.get do |request|
    request.url('/api/discovery')
    request.headers = HEADERS
  end
end
events_request() click to toggle source
# File lib/nubank.rb, line 69
def events_request
  make_get_request(urls['events']['href'])
end
login_request() click to toggle source
# File lib/nubank.rb, line 73
def login_request
  @conn.post do |request|
    request.url(services['login'])
    request.headers = HEADERS
    request.body = JSON.dump({
      grant_type: 'password',
      login: @cpf,
      password: @password,
      client_id: 'other.conta',
      client_secret: 'yQPeLzoHuJzlMMSAjC-LgNUJdUecx8XO'
    })
  end
end
logout_request() click to toggle source
# File lib/nubank.rb, line 87
def logout_request
  make_post_request(urls['revoke_token']['href'])
end
make_get_request(url) click to toggle source
# File lib/nubank.rb, line 98
def make_get_request(url)
  @conn.get do |request|
    request.url(url)
    request.headers = auth_headers
  end
end
make_post_request(url) click to toggle source
# File lib/nubank.rb, line 105
def make_post_request(url)
  @conn.post do |request|
    request.url(url)
    request.headers = auth_headers
  end
end