class OracleHcm::Client

Attributes

endpoint[R]
password[R]
username[R]

Public Class Methods

new(endpoint, username, password) click to toggle source
# File lib/oracle_hcm/client.rb, line 11
def initialize(endpoint, username, password)
  @endpoint = endpoint
  @username = username
  @password = password
end
resource(method, resource:, url: resource.resource_name) click to toggle source

Sugar syntax for defining top-level resources

# File lib/oracle_hcm/client.rb, line 18
def self.resource(method, resource:, url: resource.resource_name)
  define_method(method) do |offset: 0, limit: 20, q: []|
    if !q.is_a?(Array)
      q = [q]
    end
    res = connection.get do |req|
      req.url url
      req.params["offset"] = offset
      req.params["limit"] = limit
      if q.any?
        req.params["q"] = q.join(";")
      end
    end
    if res.success?
      ResourceList.new(JSON.parse(res.body), offset, limit, method, resource, self)
    else
      nil
    end
  end
end

Public Instance Methods

base_url() click to toggle source
# File lib/oracle_hcm/client.rb, line 54
def base_url
  "#{endpoint}/hcmRestApi/resources/11.13.18.05"
end
connection() click to toggle source

Get an authenticated Faraday connection using given credentials.

# File lib/oracle_hcm/client.rb, line 59
def connection
  Faraday.new(url: base_url) do |conn|
    conn.basic_auth(username, password)
  end
end
document_record(id:) click to toggle source

Retrieve a single document record resource by DocumentsOfRecordId

# File lib/oracle_hcm/client.rb, line 50
def document_record(id:)
  document_records(q: "DocumentsOfRecordId=#{id}").items.first
end
worker(id:) click to toggle source

Retrieve a single worker resource by PersonId

# File lib/oracle_hcm/client.rb, line 45
def worker(id:)
  workers(q: "PersonId=#{id}").items.first
end