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