class PeopleDoc::V1::Client

PeopleDoc REST API v1 Client

Public Class Methods

new(options = {}) click to toggle source
# File lib/people_doc.rb, line 67
def initialize(options = {})
  options = default_options.merge(options)

  @api_key = options.fetch(:api_key)
  @base_url = options.fetch(:base_url)
  @logger = options.fetch(:logger, Logger.new(STDOUT))
  @request = HTTPartyRequest.new(@base_url, @logger, response_handlers)
end

Public Instance Methods

get(resource) click to toggle source

Get a resource Makes a request for a resource from PeopleDoc and returns the response as a raw {Hash}.

@param [String] the resource endpoint @return [Hash] response data

# File lib/people_doc.rb, line 83
def get(resource)
  @request
    .get(base_headers, "api/v1/#{resource}")
rescue NotFound
  nil
end
post(resource, payload) click to toggle source

POST a resource Makes a request to post new or existing resource details to PeopleDoc.

@param [String] the resource endpoint @param [Hash] payload data @return [Hash] response data

# File lib/people_doc.rb, line 97
def post(resource, payload)
  @request.post(
    base_headers,
    "api/v1/#{resource}/",
    payload.to_json
  )
end
post_file(resource, file, payload) click to toggle source

POST a file …

@param [String] the resource endpoint @param […] file @param [Hash] payload data @return [Hash] response data

# File lib/people_doc.rb, line 113
def post_file(resource, file, payload)
  @request.post_file(
    base_headers.merge(
      'Accept' => 'multipart/form-data'
    ),
    "api/v1/#{resource}/",
    file: file,
    data: payload ? payload.to_json : nil
  )
end

Protected Instance Methods

base_headers() click to toggle source
# File lib/people_doc.rb, line 126
def base_headers
  {
    'Accept' => 'application/json',
    'X-API-KEY' => @api_key,
    'Content-Type' => 'application/json',
    'Host' => uri.host,
    'User-Agent' => 'PeopleDoc::V1::Client'
  }
end
default_options() click to toggle source

Default options A {Hash} of default options populate by attributes set during configuration.

@return [Hash] containing the default options

# File lib/people_doc.rb, line 142
def default_options
  {
    api_key: PeopleDoc::V1.api_key,
    base_url: PeopleDoc::V1.base_url,
    logger: PeopleDoc::V1.logger
  }
end
response_handlers() click to toggle source
# File lib/people_doc.rb, line 150
def response_handlers
  RESPONSE_HANDLERS.merge(
    bad_request: PeopleDoc::ResponseHandlers::V1::HandleBadRequest
  )
end
uri() click to toggle source
# File lib/people_doc.rb, line 156
def uri
  @uri ||= URI.parse(@base_url)
end