class AutoExpreso::Client
Constants
- BASE_URL
- ENDPOINTS
- USER_AGENT
Attributes
account[R]
jwt_header[RW]
Public Class Methods
new(*args)
click to toggle source
# File lib/autoexpreso.rb, line 26 def initialize(*args) @account = Hash.new end
Public Instance Methods
account_details(json: false)
click to toggle source
# File lib/autoexpreso.rb, line 35 def account_details(json: false) if json puts JSON.pretty_generate(account) else ap account end end
login(email, password)
click to toggle source
# File lib/autoexpreso.rb, line 30 def login(email, password) authenticate(email, password) account_summary end
Protected Instance Methods
account_summary()
click to toggle source
# File lib/autoexpreso.rb, line 73 def account_summary response = default_connection.get do |req| req.url(ENDPOINTS[:account_summary]) end if response.success? @response_body = JSON.parse(response.body) @account = @response_body end end
authenticate(email, password)
click to toggle source
# File lib/autoexpreso.rb, line 59 def authenticate(email, password) payload = { email: email, password: password } response = default_connection.post do |req| req.url(ENDPOINTS[:login]) req.body = JSON.generate(payload) end if response.success? @response_body = JSON.parse(response.body, object_class: OpenStruct) @jwt_header = @response_body.accessToken end end
default_connection(debug = false)
click to toggle source
# File lib/autoexpreso.rb, line 49 def default_connection(debug = false) Faraday.new(url: BASE_URL) do |conn| conn.adapter :typhoeus conn.headers[:user_agent] = USER_AGENT conn.headers[:content_type] = 'application/json' conn.headers['Authorization'] = authorization_header if @jwt_header conn.response :logger if debug end end