module Assonnato::Request

Public Instance Methods

get(path, headers = {}) click to toggle source
# File lib/assonnato/request.rb, line 11
def get(path, headers = {})
  request :get,  path, {}, headers
end
post(path, data = {}, headers = {}) click to toggle source
# File lib/assonnato/request.rb, line 15
def post(path, data = {}, headers = {})
  request :post, path, data, headers
end

Private Instance Methods

request(method, path, data, headers) click to toggle source
# File lib/assonnato/request.rb, line 20
def request(method, path, data, headers)
  headers['Cookie'] = @cookies.get

  Net::HTTP.start(@host, @port, use_ssl: @ssl) do |http|
    resp = case method.to_sym
      when :get
        http.get  path, headers
      when :post
        data = URI.encode_www_form data
        headers['Content-Type'] = 'application/x-www-form-urlencoded'

        http.post path, data, headers
      else raise ArgumentError, 'format not recognized'
    end

    @cookies << resp.response['set-cookie'].split('; ')[0] rescue @cookies.get
    JSON.parse resp.body
  end
end