class Spore::Client

Attributes

api_endpoint[RW]
email[RW]
key[RW]
middleware[RW]
user_agent[RW]

Public Class Methods

new(email = nil, key = nil) click to toggle source
# File lib/spore/client.rb, line 28
def initialize(email = nil, key = nil)
  @email = email
  @key = key
end

Public Instance Methods

name=(deployment_name) click to toggle source
# File lib/spore/client.rb, line 33
def name=(deployment_name)
  @email = deployment_name
end

Private Instance Methods

connection() click to toggle source
# File lib/spore/client.rb, line 84
def connection
  Faraday.new(api_endpoint) do |conn|
    conn.basic_auth(email, key) if signed_in?
    conn.request :url_encoded
    conn.response :json, :content_type => /\bjson$/
    conn.adapter  Faraday.default_adapter
    conn.headers[:user_agent] = user_agent
  end
end
delete(path, params = nil) click to toggle source
# File lib/spore/client.rb, line 68
def delete(path, params = nil)
  request(:delete, path, params)
end
get(path, params = nil) click to toggle source
# File lib/spore/client.rb, line 56
def get(path, params = nil)
  request(:get, path, params)
end
patch(path, params, options = nil) click to toggle source
# File lib/spore/client.rb, line 64
def patch(path, params, options = nil)
  request(:patch, path, params, options)
end
post(path, params, options = nil) click to toggle source
# File lib/spore/client.rb, line 60
def post(path, params, options = nil)
  request(:post, path, params, options)
end
request(method, path, parameters = {}, options = nil) click to toggle source
# File lib/spore/client.rb, line 72
def request(method, path, parameters = {}, options = nil)
  response = connection.send(method.to_sym, path, parameters) do |req|
    req.headers["Prefer"] = 'respond-async' if options && options[:async]
  end
  if error = response.body["error"]
    raise error["message"]
  end
  response
rescue Faraday::Error::ClientError
  raise Spore::RequestError
end