Class: Bob::Employees

Inherits:
API
  • Object
show all
Defined in:
lib/bob/api/employees.rb

Constant Summary

Constants inherited from API

API::BASE_URL

Class Method Summary collapse

Methods inherited from API

authorization_header, build_url, content_headers, create_csv, delete, get, post, post_media, put

Class Method Details

.all(params = { includeHumanReadable: true }) ⇒ Object



13
14
15
16
# File 'lib/bob/api/employees.rb', line 13

def self.all(params = { includeHumanReadable: true })
  response = get('people', params)
  EmployeeParser.new(response).employees
end

.all_people_managers(params = { includeHumanReadable: true }) ⇒ Object



18
19
20
21
# File 'lib/bob/api/employees.rb', line 18

def self.all_people_managers(params = { includeHumanReadable: true })
  response = get('people', params)
  EmployeeParser.new(response).managers
end

.find(employee_id_or_email, params: { includeHumanReadable: true }) ⇒ Object



28
29
30
31
# File 'lib/bob/api/employees.rb', line 28

def self.find(employee_id_or_email, params: { includeHumanReadable: true })
  response = get("people/#{employee_id_or_email}", params)
  EmployeeParser.new(response).employee
end

.find_by(field:, value:, params: { includeHumanReadable: true }) ⇒ Object



33
34
35
36
37
# File 'lib/bob/api/employees.rb', line 33

def self.find_by(field:, value:, params: { includeHumanReadable: true })
  all(params).find do |employee|
    employee.send(field) == value
  end
end

.starts_on(date = Date.current.to_s, params = { includeHumanReadable: true }) ⇒ Object



23
24
25
26
# File 'lib/bob/api/employees.rb', line 23

def self.starts_on(date = Date.current.to_s, params = { includeHumanReadable: true })
  response = get('people', params)
  EmployeeParser.new(response).starters_on(date)
end

.update_email(employee_id, email) ⇒ Object



44
45
46
# File 'lib/bob/api/employees.rb', line 44

def self.update_email(employee_id, email)
  put("people/#{employee_id}/email", { email: email })
end

.update_start_date(employee_id, start_date) ⇒ Object

start date needs to be in ISO format



40
41
42
# File 'lib/bob/api/employees.rb', line 40

def self.update_start_date(employee_id, start_date)
  post("employees/#{employee_id}", { startDate: start_date })
end