class HabiticaCli::Api
responsible for communicating with habit at a low level
Public Class Methods
new(user_id, api_token)
click to toggle source
# File lib/habitica_cli/api.rb, line 33 def initialize(user_id, api_token) @debug = ENV['DEBUG_HABITICA'] == 'true' @user_id = user_id @api_token = api_token end
Public Instance Methods
get(url, query = nil)
click to toggle source
# File lib/habitica_cli/api.rb, line 39 def get(url, query = nil) connection do |faraday| faraday.request :url_encoded end.get(url, query) end
post(url, body = nil)
click to toggle source
# File lib/habitica_cli/api.rb, line 45 def post(url, body = nil) connection.post(url, body) end
put(url, body)
click to toggle source
# File lib/habitica_cli/api.rb, line 49 def put(url, body) connection.put(url, body) end
Private Instance Methods
configure_defaults(faraday)
click to toggle source
# File lib/habitica_cli/api.rb, line 63 def configure_defaults(faraday) faraday.request :json faraday.use HabiticaResponseMiddleware faraday.response :json, content_type: /\bjson$/ faraday.response :logger if @debug faraday.adapter Faraday.default_adapter end
connection() { |faraday| ... }
click to toggle source
# File lib/habitica_cli/api.rb, line 73 def connection Faraday.new( url: 'https://habitica.com/api/v3/', headers: default_headers(@user_id, @api_token) ) do |faraday| configure_defaults(faraday) yield faraday if block_given? faraday end end
default_headers(user_id, api_token)
click to toggle source
# File lib/habitica_cli/api.rb, line 55 def default_headers(user_id, api_token) { 'x-api-key' => api_token, 'x-api-user' => user_id, 'Content-Type' => 'application/json' } end