class Appfirst::Client::Real

Public Class Methods

new(options={}) click to toggle source
# File lib/appfirst/client.rb, line 39
def initialize(options={})
  setup(options)
  adapter            = options[:adapter] || Faraday.default_adapter
  connection_options = options[:connection_options] || {ssl: {verify: false}}

  @connection = Faraday.new({url: @url}.merge(connection_options)) do |builder|
    builder.basic_auth @user, @password
    builder.request  :url_encoded
    builder.response :json, content_type: /\bjson$/
    builder.adapter  adapter
    builder.request :retry, max: 10, interval: 0.05, interval_randomness: 0.5, backoff_factor: 2

    builder.use Appfirst::Logger, @logger

    builder.adapter *adapter
  end
end

Public Instance Methods

create_server_tag(params={}) click to toggle source
# File lib/appfirst/requests/create_server_tag.rb, line 3
def create_server_tag(params={})
  request(:post, "/server_tags", params)
end
request(method, request_path, params = nil) click to toggle source
# File lib/appfirst/client.rb, line 57
def request(method, request_path, params = nil)
  response = @connection.send(method) do |req|
    req.url(File.join(@url, path, request_path, "/"))
    req.params.merge!(params)
  end

  Appfirst::Response.new(response.status, response.headers, response.body).raise!
end