class NdsApi::Http

Public Class Methods

new(options = {}) click to toggle source
# File lib/nds_api/http.rb, line 8
def initialize(options = {})
  @options = options.dup
end

Public Instance Methods

get(url) click to toggle source
# File lib/nds_api/http.rb, line 12
def get(url)
  JSON.parse(open(url, http_basic_authentication: [api_user, api_password]).read)
rescue StandardError => error
  puts "NDS API ERROR: #{error} (GET:#{url})"
  raise error
end
post(url, data) click to toggle source
# File lib/nds_api/http.rb, line 19
def post(url, data)
  http_action('post', url, data)
end
put(url, data) click to toggle source
# File lib/nds_api/http.rb, line 23
def put(url, data)
  http_action('put', url, data)
end

Private Instance Methods

api_password() click to toggle source
# File lib/nds_api/http.rb, line 55
def api_password
  @options[:password]
end
api_user() click to toggle source
# File lib/nds_api/http.rb, line 51
def api_user
  @options[:user]
end
http_action(post_or_put, url, data) click to toggle source
# File lib/nds_api/http.rb, line 29
def http_action(post_or_put, url, data)
  url = URI.parse(url)
  req = http_verb_object(post_or_put).new(
    url,
    'Content-Type' => 'application/json'
  )
  req.basic_auth api_user, api_password
  req.body = data.to_json
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  response = http.request(req)
  JSON.parse(response.body)
rescue StandardError => error
  puts "NDS API ERROR: #{error} (#{post_or_put}:#{url})"
  raise e
end
http_verb_object(post_or_put) click to toggle source
# File lib/nds_api/http.rb, line 46
def http_verb_object(post_or_put)
  return Net::HTTP::Post if post_or_put == 'post'
  return Net::HTTP::Put if post_or_put == 'put'
end