class Shipwire::Request
Constants
- API_VERSION
Attributes
body[R]
method[R]
params[R]
path[R]
Public Class Methods
new(method: :get, path: '', params: {}, body: {})
click to toggle source
# File lib/shipwire/request.rb, line 11 def initialize(method: :get, path: '', params: {}, body: {}) @method = method @path = path @params = params @body = body @connection = build_connection end
send(**args)
click to toggle source
# File lib/shipwire/request.rb, line 3 def self.send(**args) new(**args).send end
Public Instance Methods
send()
click to toggle source
# File lib/shipwire/request.rb, line 20 def send Response.new(underlying_response: make_request) rescue Faraday::ConnectionFailed Response.new(error_summary: 'Unable to connect to Shipwire') rescue Faraday::TimeoutError Response.new(error_summary: 'Shipwire connection timeout') end
Private Instance Methods
base_url()
click to toggle source
# File lib/shipwire/request.rb, line 53 def base_url Shipwire.configuration.endpoint.chomp("/") end
build_connection()
click to toggle source
# File lib/shipwire/request.rb, line 30 def build_connection Faraday.new(url: base_url) do |connection| connection.request(:basic_auth, username, password) connection.request(:json) connection.request(:url_encoded) if Shipwire.configuration.logger connection.response(:logger) end connection.adapter(Faraday.default_adapter) end end
full_path()
click to toggle source
# File lib/shipwire/request.rb, line 57 def full_path "/api/v#{API_VERSION}/#{@path}" end
make_request()
click to toggle source
# File lib/shipwire/request.rb, line 44 def make_request @connection.public_send(@method, full_path) do |request| request.params = params unless params.empty? request.options.open_timeout = Shipwire.configuration.open_timeout request.options.timeout = Shipwire.configuration.timeout request.body = body unless body.empty? end end
password()
click to toggle source
# File lib/shipwire/request.rb, line 69 def password Shipwire.configuration.password end
username()
click to toggle source
# File lib/shipwire/request.rb, line 65 def username Shipwire.configuration.username end