class PeopleDoc::HTTPartyRequest

Public Class Methods

new(base_url, logger, response_handlers = []) click to toggle source
# File lib/people_doc/httparty_request.rb, line 8
def initialize(base_url, logger, response_handlers = [])
  @base_url = base_url
  @logger = logger
  @response_handlers = response_handlers
end

Public Instance Methods

get(headers, resource) click to toggle source
# File lib/people_doc/httparty_request.rb, line 14
def get(headers, resource)
  url = "#{@base_url}/#{resource}"

  @logger.debug("GET request Url: #{url}")
  @logger.debug("-- Headers: #{headers}")

  raises_unless_success do
    HTTParty
      .get(url, headers: headers)
  end.parsed_response
end
perform_request(headers, resource, payload) click to toggle source
# File lib/people_doc/httparty_request.rb, line 26
def perform_request(headers, resource, payload)
  http_method = __callee__
  url = "#{@base_url}/#{resource}"

  @logger.debug("#{http_method.upcase} request Url: #{url}")
  @logger.debug("-- Headers: #{headers}")
  @logger.debug("-- Payload: #{payload}")

  raises_unless_success do
    HTTParty
      .send(http_method.to_sym, url, body: payload, headers: headers)
  end.parsed_response
end
Also aliased as: put, post
post(headers, resource, payload)
Alias for: perform_request
post_file(headers, resource, payload) click to toggle source
# File lib/people_doc/httparty_request.rb, line 42
def post_file(headers, resource, payload)
  http_method = 'post'
  url = "#{@base_url}/#{resource}"

  @logger.debug("#{http_method.upcase} request Url: #{url} (POST file)")
  @logger.debug("-- Headers: #{headers}")
  @logger.debug("-- Payload: #{payload}")

  raises_unless_success do
    HTTParty.post(url, body: payload, headers: headers)
  end.parsed_response
end
put(headers, resource, payload)
Alias for: perform_request

Protected Instance Methods

raises_unless_success() { || ... } click to toggle source
# File lib/people_doc/httparty_request.rb, line 57
def raises_unless_success
  httparty = yield

  @response_handlers.each_value do |handler_type|
    handler_type.new(httparty).call
  end

  httparty
end