class HTTPAdapter

Public Class Methods

new(url, headers=Hash[]) click to toggle source
# File src/api/HTTPAdapter.rb, line 7
def initialize (url, headers=Hash[])
    @url = URI(url)
    @headers = headers
    @http = Net::HTTP.new(@url.host, @url.port)
end

Public Instance Methods

get(url, params=nil, headers=Hash[]) click to toggle source
# File src/api/HTTPAdapter.rb, line 13
def get(url, params=nil, headers=Hash[])
    headers = @headers.merge headers
    url = URI("#{@url}#{url}")
    if !params.nil?
        url.query = URI.encode_www_form(params)
    end
    res = Net::HTTP::Get.new(url.request_uri)
    headers.map do |headerName, headerValue|
        res[headerName] = headerValue
    end
    res = @http.request(res)
    raise NotFound.new(res) if res.is_a?(Net::HTTPNotFound)
    raise APIError.new(res) if !res.is_a?(Net::HTTPSuccess)
    JSON.parse(res.body)
end
post(url, body=Hash[], headers=Hash[]) click to toggle source
# File src/api/HTTPAdapter.rb, line 29
def post(url, body=Hash[], headers=Hash[])
    headers = @headers.merge headers
    puts headers
    url = URI("#{@url}#{url}")
    res = Net::HTTP::Post.new(url.request_uri, 'Content-Type' => 'application/json')
    res.body = body.to_json
    headers.map do |headerName, headerValue|
        res[headerName] = headerValue
    end
    res = @http.request(res)
    raise NotFound.new(res) if res.is_a?(Net::HTTPNotFound)
    raise APIError.new(res) if !res.is_a?(Net::HTTPSuccess)
    JSON.parse(res.body)
end