class PebbleTimeline::API
Public Class Methods
call(url, http_method, params={})
click to toggle source
# File lib/pebble_timeline/api.rb, line 10 def self.call(url, http_method, params={}) @api ||= self.new response = @api.send(http_method, url, params) response.body end
new()
click to toggle source
# File lib/pebble_timeline/api.rb, line 3 def initialize raise ConfigMissingAPIKeyError, 'You must provide an API Key' unless PebbleTimeline.config.api_key @api_key = PebbleTimeline.config.api_key @base_url = PebbleTimeline.config.base_url end
Private Instance Methods
connection()
click to toggle source
# File lib/pebble_timeline/api.rb, line 18 def connection @connection ||= Faraday.new(url: @api_url) do |faraday| faraday.headers['Content-Type'] = 'application/json' faraday.headers['X-API-Key'] = @api_key faraday.adapter Faraday.default_adapter faraday.use PebbleTimeline::Middleware::ErrorDetector end end
delete(path, params)
click to toggle source
# File lib/pebble_timeline/api.rb, line 52 def delete(path, params) connection.delete do |req| req.url resource_url(path) req.headers['X-User-Token'] = params.delete(:user_token) if params.has_key? :user_token end end
get(path, params)
click to toggle source
# File lib/pebble_timeline/api.rb, line 45 def get(path, params) connection.get do |req| req.url resource_url(path) req.headers['X-User-Token'] = params.delete(:user_token) if params.has_key? :user_token end end
post(path, params)
click to toggle source
# File lib/pebble_timeline/api.rb, line 27 def post(path, params) connection.post do |req| req.url resource_url(path) req.headers['X-User-Token'] = params.delete(:user_token) if params.has_key? :user_token req.headers['X-Pin-Topics'] = params.delete(:topics) if params.has_key? :topics req.body = params.to_json end end
put(path, params)
click to toggle source
# File lib/pebble_timeline/api.rb, line 36 def put(path, params) connection.put do |req| req.url resource_url(path) req.headers['X-User-Token'] = params.delete(:user_token) if params.has_key? :user_token req.headers['X-Pin-Topics'] = params.delete(:topics) if params.has_key? :topics req.body = params.to_json end end
resource_url(path)
click to toggle source
# File lib/pebble_timeline/api.rb, line 59 def resource_url(path) "#{@base_url}#{path}" end