module JSONtoDB::REST

This module handles REST requests

Public Instance Methods

basic_request(klass, url, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 50
def basic_request(klass, url, user, pass)
  uri = URI(url)
  request = klass.new(uri)
  request.basic_auth(user, pass)
  request
end
data_request(klass, url, src, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 30
def data_request(klass, url, src, user, pass)
  if File.directory?(src)

    Dir["#{src}/*.json"].each do |file|
      file_request(klass, url, file, user, pass)
    end

  elsif File.file?(src)
    file_request(klass, url, src, user, pass)
  end
end
delete(url, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 12
def delete(url, user, pass)
  no_data_request(Net::HTTP::Delete, url, user, pass)
end
file_request(klass, url, src, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 42
def file_request(klass, url, src, user, pass)
  request = basic_request(klass, url, user, pass)
  request.content_type = 'application/json'
  request.set_form_data(JSONtoDB::IO.read(src))

  make_request(url, request)
end
get(url, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 8
def get(url, user, pass)
  no_data_request(Net::HTTP::Get, url, user, pass)
end
handle_errors(response) click to toggle source
# File lib/jsontodb/rest.rb, line 67
def handle_errors(response)
  return response.body if response.code.start_with?('20')

  puts "ERROR: '#{response.code}' response. (#{response.message} - #{response.class.name})"
  ''
end
make_request(url, request) click to toggle source
# File lib/jsontodb/rest.rb, line 57
def make_request(url, request)
  uri = URI(url)

  response = Net::HTTP.start(uri.hostname, uri.port) do |http|
    http.request(request)
  end

  handle_errors(response)
end
no_data_request(klass, url, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 16
def no_data_request(klass, url, user, pass)
  request = basic_request(klass, url, user, pass)

  make_request(url, request)
end
post(url, src, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 26
def post(url, src, user, pass)
  data_request(Net::HTTP::Post, url, src, user, pass)
end
put(url, src, user, pass) click to toggle source
# File lib/jsontodb/rest.rb, line 22
def put(url, src, user, pass)
  data_request(Net::HTTP::Put, url, src, user, pass)
end