class Apitool::Client::ApitoolClient
Public Class Methods
new(params = {})
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 3 def initialize(params = {}) @host ||= params[:host] @port ||= params[:port] @ssl ||= params[:ssl] || false @token ||= params[:token] @version ||= params[:version] || 'v1' @symbolize ||= params[:symbolize] || true default_ssl_verification = (@ssl) ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE @verify_ssl ||= params[:verify_ssl] || default_ssl_verification end
Public Instance Methods
errors()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 27 def errors end
request()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 19 def request @request.nil? ? nil : @request.args end
response()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 15 def response @response.nil? ? nil : parse(@response) end
result()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 23 def result @result.nil? ? nil : @result.code.to_i end
Protected Instance Methods
delete(path) { |response, request, result| ... }
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 61 def delete(path) get_connection[request_uri(path)].delete(headers) { |response, request, result, &block| _update(response, request, result) yield response, request, result if block_given? } end
get(path, options = {}) { |response, request, result| ... }
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 40 def get(path, options = {}) get_connection[request_uri(path)].get(headers) { |response, request, result, &block| _update(response, request, result) yield response, request, result if block_given? } end
get_connection()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 33 def get_connection @client ||= RestClient::Resource.new( base_uri, verify_ssl: @verify_ssl ) end
parse(data)
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 68 def parse(data) JSON.parse(data, symbolize_names: @symbolize) end
post(path, parameters) { |response, request, result| ... }
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 47 def post(path, parameters) get_connection[request_uri(path)].post(parameters.to_json, headers) { |response, request, result, &block| _update(response, request, result) yield response, request, result if block_given? } end
put(path, parameters) { |response, request, result| ... }
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 54 def put(path, parameters) get_connection[request_uri(path)].put(parameters.to_json, headers) { |response, request, result, &block| _update(response, request, result) yield response, request, result if block_given? } end
Private Instance Methods
_update(_response, _request, _result)
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 74 def _update(_response, _request, _result) @response = _response @request = _request @result = _result log = "#{result} - #{request[:method].upcase} - #{request[:url]} - payload[#{request[:payload] || ''}]" if response.present? and (response.kind_of? Array and response[0].has_key?(:message)) || (response.kind_of? Hash and response.has_key?(:errors)) log = log + " - error['#{response.inspect}']" end logger.info log end
base_uri()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 86 def base_uri if @ssl "https://#{@host}:#{@port}" else "http://#{@host}:#{@port}" end end
headers()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 98 def headers { content_type: :json, accept: :json, authorization: "Token token=#{@token}" } end
logger()
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 106 def logger Apitool::Client.logger end
request_uri(path)
click to toggle source
# File lib/apitool/client/apitool_client.rb, line 94 def request_uri(path) "/api/#{@version}#{path}" end