Class: PeopleDoc::V1::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/people_doc.rb

Overview

PeopleDoc REST API v1 Client

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



67
68
69
70
71
72
73
74
# 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

Instance Method Details

#get(resource) ⇒ Hash

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

Parameters:

  • the (String)

    resource endpoint

Returns:

  • (Hash)

    response data



83
84
85
86
87
88
# File 'lib/people_doc.rb', line 83

def get(resource)
  @request
    .get(base_headers, "api/v1/#{resource}")
rescue NotFound
  nil
end

#post(resource, payload) ⇒ Hash

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

Parameters:

  • the (String)

    resource endpoint

  • payload (Hash)

    data

Returns:

  • (Hash)

    response data



97
98
99
100
101
102
103
# 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) ⇒ Hash

POST a file …

Parameters:

  • the (String)

    resource endpoint

  • file (...)
  • payload (Hash)

    data

Returns:

  • (Hash)

    response data



113
114
115
116
117
118
119
120
121
122
# 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