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