class NOMIS::API::Get

Convenience wrapper around an API call Manages defaulting of params from env vars, and parsing the returned JSON

Attributes

auth_token[RW]
base_url[RW]
disable_ssl_verify[RW]
params[RW]
path[RW]

Public Class Methods

new(opts={}) click to toggle source
# File lib/nomis/api/get.rb, line 16
def initialize(opts={})
  self.auth_token = opts[:auth_token] || default_auth_token(opts)
  self.base_url   = opts[:base_url] || ENV['NOMIS_API_BASE_URL']
  self.params = opts[:params] || {}
  self.path = opts[:path]
  self.disable_ssl_verify = opts[:disable_ssl_verify]
end

Public Instance Methods

execute() click to toggle source
# File lib/nomis/api/get.rb, line 24
def execute
  uri = URI.join(base_url, path)
  uri.query = URI.encode_www_form(params)

  req = Net::HTTP::Get.new(uri)
  req['Authorization'] = auth_token

  ParsedResponse.new(get_response(req))
end

Protected Instance Methods

default_auth_token(params={}) click to toggle source
# File lib/nomis/api/get.rb, line 36
def default_auth_token(params={})
  ENV['NOMIS_API_AUTH_TOKEN'] || NOMIS::API::AuthToken.new(params).bearer_token
end
get_response(req) click to toggle source
# File lib/nomis/api/get.rb, line 40
def get_response(req)
  http = Net::HTTP.new(req.uri.hostname, req.uri.port)
  http.use_ssl = (req.uri.scheme == "https")
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE if disable_ssl_verify
  http.request(req)
end