class Spike
Main class
Constants
- API_BASE
- API_URL
- API_VERSION
- VERSION
Public Class Methods
new(secret_token)
click to toggle source
# File lib/spike.rb, line 16 def initialize(secret_token) @secret_token = secret_token end
Public Instance Methods
charge()
click to toggle source
# File lib/spike.rb, line 20 def charge Spike::Charge.new(self) end
get(request_path:, request_params: {})
click to toggle source
# File lib/spike.rb, line 28 def get(request_path:, request_params: {}) require 'active_support/core_ext/object/to_query' c = build_curl(request_path + '?' + request_params.to_query) basic_auth(c) c.http_get handle_response(c) JSON.parse(c.body_str) end
post(request_path:, request_params:)
click to toggle source
# File lib/spike.rb, line 40 def post(request_path:, request_params:) c = build_curl(request_path) basic_auth(c) curb_post_fields = request_params.map { |k, v| Curl::PostField.content(k, v) } c.http_post(c.url, *curb_post_fields) handle_response(c) JSON.parse(c.body_str) end
token()
click to toggle source
# File lib/spike.rb, line 24 def token Spike::Token.new(self) end
Private Instance Methods
basic_auth(curl)
click to toggle source
# File lib/spike.rb, line 59 def basic_auth(curl) curl.http_auth_types = :basic curl.username = @secret_token curl.password = '' end
build_curl(request_path)
click to toggle source
# File lib/spike.rb, line 53 def build_curl(request_path) c = Curl::Easy.new c.url = API_URL + request_path c end
handle_response(curl)
click to toggle source
# File lib/spike.rb, line 65 def handle_response(curl) case curl.status.to_i when 400 raise Spike::BadRequestError, JSON.parse(curl.body_str)['error']['message'] when 401 raise Spike::UnauthorizedError when 402 raise Spike::RequestFailedError when 404 raise Spike::NotFoundError when 500 raise Spike::ApiServerError end end