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