class SnapAPIClient::Transport

Transport

Transport wrapper for the HTTP library.

Constants

RESPONSE_ERRORS

Public Instance Methods

delete(path, parameters = {}, headers = {}) click to toggle source
# File lib/snap_api_client/transport.rb, line 31
def delete(path, parameters = {}, headers = {})
  do_request!(:delete, path, :params, parameters, headers)
end
get(path, parameters = {}, headers = {}) click to toggle source
# File lib/snap_api_client/transport.rb, line 19
def get(path, parameters = {}, headers = {})
  do_request!(:get, path, :params, parameters, headers)
end
patch(path, parameters = {}, headers = {}) click to toggle source
# File lib/snap_api_client/transport.rb, line 27
def patch(path, parameters = {}, headers = {})
  do_request!(:patch, path, :json, parameters, headers)
end
post(path, parameters = {}, headers = {}) click to toggle source
# File lib/snap_api_client/transport.rb, line 23
def post(path, parameters = {}, headers = {})
  do_request!(:post, path, :json, parameters, headers)
end

Private Instance Methods

build_headers(headers) click to toggle source
# File lib/snap_api_client/transport.rb, line 57
def build_headers(headers)
  {
    accept: 'application/json',
    authorization: "Token token=#{configuration.authentication_token}"
  }.merge(headers)
end
build_parameters(parameters) click to toggle source
# File lib/snap_api_client/transport.rb, line 64
def build_parameters(parameters)
  parameters.reject { |_, value| value.nil? }
end
build_url(path) click to toggle source
# File lib/snap_api_client/transport.rb, line 53
def build_url(path)
  "#{configuration.base_url}#{path}"
end
configuration() click to toggle source
# File lib/snap_api_client/transport.rb, line 37
def configuration
  SnapAPIClient.configuration
end
do_request!(type, path, parameters_type, parameters, headers) click to toggle source
# File lib/snap_api_client/transport.rb, line 41
def do_request!(type, path, parameters_type, parameters, headers)
  response = make_http_call(type, path, parameters_type, parameters, headers)
  filter_error_response!(response)
  Response.new(response)
end
filter_error_response!(response) click to toggle source
# File lib/snap_api_client/transport.rb, line 68
def filter_error_response!(response)
  exception_class = RESPONSE_ERRORS[response.status.code]
  exception_class ? raise(exception_class, response) : response
end
make_http_call(type, path, parameters_type, parameters, headers) click to toggle source
# File lib/snap_api_client/transport.rb, line 47
def make_http_call(type, path, parameters_type, parameters, headers)
  HTTP
    .headers(build_headers(headers))
    .public_send(type, build_url(path), parameters_type => build_parameters(parameters))
end