class PeopleHR::Employees

Attributes

api[R]

Public Class Methods

new(api:) click to toggle source
# File lib/peoplehr/employees.rb, line 3
def initialize(api:)
  @api = api
end

Public Instance Methods

all() click to toggle source
# File lib/peoplehr/employees.rb, line 7
def all
  transformation =
    t(:extract_result) >>
    t(
      :map_array,
      t(
        :map_values,
        t(:extract_display_value)
      )
    ) >>
    t(
      :map_array,
      t(
        :accept_keys,
        [
          "EmployeeId",
          "FirstName",
          "LastName",
          "Title",
          "EmailId",
          "StartDate",
          "DateOfBirth",
          "JobRole",
          "Company",
          "Location",
          "Department",
        ]
      ) >>
      t(
        :map_keys,
        -> k {
          k.gsub(/::/, '/')
            .gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
            .gsub(/([a-z\d])([A-Z])/,'\1_\2')
            .tr("-", "_")
            .downcase
        }
      ) >>
      t(:symbolize_keys) >>
      t(:rename_keys, { employee_id: :id }) >>
      t(:convert_to_employee)
    )

  transformation.call(api_data)
end

Private Instance Methods

api_data() click to toggle source
# File lib/peoplehr/employees.rb, line 57
def api_data
  api.request("GetAllEmployeeDetail", "IncludeLeavers" => false)
end
t(*args) click to toggle source
# File lib/peoplehr/employees.rb, line 61
def t(*args)
  Transformations[*args]
end