class PeopleDoc::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