class AcquiaCloudApi::Client

Public Class Methods

new(options = {}) click to toggle source
# File lib/acapi/client.rb, line 24
def initialize(options = {})
  @options = options
  @site_name = options[:site_name]
  @last_response = false
end

Public Instance Methods

delete(uri, params = {}) click to toggle source
# File lib/acapi/client.rb, line 38
def delete(uri, params = {})
  request :delete, uri, params
end
get(uri, params = {}) click to toggle source
# File lib/acapi/client.rb, line 30
def get(uri, params = {})
  request :get, uri, params
end
post(uri, params = {}, data = {}) click to toggle source
# File lib/acapi/client.rb, line 34
def post(uri, params = {}, data = {})
  request :post, uri, params, data
end
site_name() click to toggle source
# File lib/acapi/client.rb, line 42
def site_name
  @site_name ||= Client.new(@options).sites.first.split(':').last
end

Private Instance Methods

request(method, uri, params = {}, data = {}) click to toggle source
# File lib/acapi/client.rb, line 48
def request(method, uri, params = {}, data = {})
  cert = OpenSSL::X509::Certificate.new(File.read("#{AcquiaCloudApi.source_root}/cloudapi.acquia.com.pem"))

  req = RestClient::Request.new(
    :method => method,
    :url => "#{Default::API_ENDPOINT}/#{uri}.json",
    :user => @options[:username],
    :password => @options[:password],
    :payload => data,
    :ssl_client_cert => cert,
    :headers => {
      :params => params
    }
  )

  res = req.execute
  @last_response = res

  JSON.parse(res)
end