class NRB::HTTPService

Constants

DEFAULT_MIDDLEWARE
VERSION

Attributes

faraday_middleware[RW]
args[R]
connection_opts[R]
params[R]
response_class[R]
url[R]
verb[R]

Public Class Methods

default_http_class() click to toggle source
# File lib/NRB_http_service.rb, line 18
def default_http_class; Faraday; end
default_middleware() click to toggle source
# File lib/NRB_http_service.rb, line 17
def default_middleware; DEFAULT_MIDDLEWARE; end
default_response_class() click to toggle source
# File lib/NRB_http_service.rb, line 19
def default_response_class; Response; end
make_request(args={}, connection_opts={}) click to toggle source
# File lib/NRB_http_service.rb, line 22
def make_request(args={}, connection_opts={})
  new(args,connection_opts).make_request
end
new(args={}, connection_opts={}) click to toggle source
# File lib/NRB_http_service.rb, line 31
def initialize(args={}, connection_opts={})
  @connection_opts = connection_opts
  @response_class = args.delete(:response_class) || self.class.default_response_class
  @verb = args.delete(:verb)
  @url = args.delete(:url)
  @params = process_args(args)
  @args = args
end
version() click to toggle source
# File lib/NRB_http_service/version.rb, line 4
def self.version; VERSION; end

Public Instance Methods

make_request() click to toggle source
# File lib/NRB_http_service.rb, line 41
def make_request
  response = connection.send verb, url, params
  response_class.new response_args(response)
rescue Faraday::Error::ParsingError => e
  self.class.default_response_class.new body: {error: e.message}, status: 500
end

Private Instance Methods

connection() click to toggle source
# File lib/NRB_http_service.rb, line 52
def connection
  self.class.default_http_class.new url, connection_opts, &self.class.faraday_middleware
end
process_args(args) click to toggle source
# File lib/NRB_http_service.rb, line 57
def process_args(args)
  return args unless @verb == :post
  args.inject("") { |str,pair| str += "#{pair.first}=#{pair.last}&" }.chop
end
response_args(response) click to toggle source
# File lib/NRB_http_service.rb, line 63
def response_args(response)
  args.merge( { body: response.body, headers: response.headers, status: response.status.to_i } )
end