class CloudControl::API::Core
Attributes
client[R]
Public Class Methods
new(client)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 4 def initialize(client) @client = client end
Public Instance Methods
endpoint(e)
click to toggle source
request options
# File lib/cloudcontrol/api/core.rb, line 19 def endpoint(e) @endpoint = e end
get()
click to toggle source
perform request
# File lib/cloudcontrol/api/core.rb, line 41 def get perform :get end
get_simple()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 49 def get_simple perform :get, true end
log(*args)
click to toggle source
client methods
# File lib/cloudcontrol/api/core.rb, line 9 def log(*args) @client.log(*args) end
org_endpoint(e)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 23 def org_endpoint(e) endpoint("/#{org_id}" + e) end
org_id()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 13 def org_id @client.org_id end
perform(method, simple=false)
click to toggle source
do not parse response if simple if simple, post body is also simpleā¦
# File lib/cloudcontrol/api/core.rb, line 59 def perform(method, simple=false) if simple request = @client.build_request(method, @endpoint, request_query_string, request_simple_body, false) else request = @client.build_request(method, @endpoint, request_query_string, request_xml_body) end response = @client.perform_request(request) @client.log_response(request, response) # return parsed object if it's good if response.success? if simple result = response.body else result = @client.parse_response_xml_body(response.body) if result['total_count'] log "#{result['total_count']} total", :yellow, :bold result.delete('page_size') result.delete('total_count') result.delete('page_count') result.delete('page_number') end # unwind some arrays of elements result.values.count == 1 ? result.values.first : result end else {} end end
post()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 45 def post perform :post end
post_simple()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 53 def post_simple perform :post, true end
query_params(q)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 27 def query_params(q) @query_params = q end
request_query_string()
click to toggle source
build request
# File lib/cloudcontrol/api/core.rb, line 101 def request_query_string fparams = @client.filter_params || {} qparams = @query_params || {} params = fparams.merge(qparams) @client.url_query(params) if params.present? end
request_simple_body()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 117 def request_simple_body return if @simple_params.blank? body = @client.build_request_simple_body(@simple_params) log(body, :green) body end
request_xml_body()
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 108 def request_xml_body return if @xml_params.blank? schema = @xml_params.delete(:schema) tag = @xml_params.delete(:tag) body = @client.build_request_xml_body(schema, tag, @xml_params) log(body, :green) body end
simple_params(x)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 35 def simple_params(x) @simple_params = x end
single(results)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 90 def single(results) if results.is_a? Array results.first else results end end
xml_params(x)
click to toggle source
# File lib/cloudcontrol/api/core.rb, line 31 def xml_params(x) @xml_params = x end