bobhr 0.5.27 → 0.5.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d39ef155e26e6b7c16e18d33ce574692a5fe0c5e63225fe8b089e4e9701cc096
4
- data.tar.gz: 74e110d4a67c7ec4f0a7e11cf441ce6acb5099f92faf210416ef293aa9f3b793
3
+ metadata.gz: 9f50d6a3f23be5df92b26048b13dae9e8b6c566519f8ecd7611ba1a4175ba9d3
4
+ data.tar.gz: 7a71e366f4c6ba73d8fc23dbbf997fc27b2d6ac2a716b576c144a08b70922644
5
5
  SHA512:
6
- metadata.gz: be2ee4efc1042e790e6ceccb56a9b308a80980256c1c543a8bf9073b59329737d535fc97317680e858cc298f640a689a1fe56a4b507429abf17eb2dedbf16d17
7
- data.tar.gz: 417b9615eed6fb3fe074390a7c8df6c5fe4797a64a6dff84fc0c47f678a61111e15398708c0babcbae6d661246ab4bee815abef42b011dc40cff2d478acbc448
6
+ metadata.gz: 43c4b4c0324c8d3fa2ff0820a7f2c294d1e50ead86115ce30b8a8c09453d7f62a545c81f82af404633304497e91b1cf62f898382b3afa55219c512dc2b2a4b76
7
+ data.tar.gz: 8bcd707124afa40ca6bc8173c568e9d36729c382ffcc8320cf7f9ba9edfdd5480aa02ec9538e6f6d3687352fb418edce1ee2f69236bee96cea1d0753e373255f
data/lib/bob/api/api.rb CHANGED
@@ -9,6 +9,7 @@ require 'csv'
9
9
  module Bob
10
10
  class API
11
11
  BASE_URL = 'https://api.hibob.com'
12
+ SANDBOX_URL = 'https://api.sandbox.hibob.com'
12
13
 
13
14
  def self.get(endpoint, params = {}, csv_response: false)
14
15
  url = build_url(endpoint, params)
@@ -86,7 +87,8 @@ module Bob
86
87
  end
87
88
 
88
89
  def self.build_url(endpoint, params = {})
89
- url = "#{BASE_URL}/#{Bob.api_version}/#{endpoint}"
90
+ url = "#{BASE_URL}/#{Bob.api_version}/#{endpoint}" unless Bob.use_sandbox
91
+ url = "#{SANDBOX_URL}/#{Bob.api_version}/#{endpoint}" if Bob.use_sandbox
90
92
  url += "?#{URI.encode_www_form(params)}" unless params.empty?
91
93
 
92
94
  url
@@ -20,9 +20,24 @@ module Bob
20
20
 
21
21
  def self.all_leavers(start_date:, end_date:)
22
22
  all({ includeHumanReadable: true, showInactive: true }).select do |employee|
23
+
23
24
  next unless employee.internal.status == 'Inactive' && employee.internal.termination_date.present?
24
25
 
25
- termination_date = Date.parse(employee.internal.termination_date)
26
+ # Don't process employees that left before the period we are looking into
27
+ internal_term_date = Date.parse(employee.internal.termination_date)
28
+ next if internal_term_date.before?(start_date)
29
+
30
+ # Need to fetch lifecycle statuses, as garden leavers have left before the actual internal term date
31
+ lifecycle_statuses = Bob::Employee::LifecycleHistory.all(employee.id)
32
+ garden_leave_status = lifecycle_statuses.find { |status| status.status == 'garden leave' }
33
+
34
+ if garden_leave_status
35
+ lifecycle_statuses = Bob::Employee::LifecycleHistory.all(employee.id)
36
+ garden_leave_status = lifecycle_statuses.find { |status| status.status == 'garden leave' }
37
+ termination_date = Date.parse(garden_leave_status.effective_date)
38
+ end
39
+
40
+ termination_date ||= Date.parse(employee.internal.termination_date)
26
41
  (start_date..end_date).include?(termination_date)
27
42
  end
28
43
  end
@@ -8,12 +8,12 @@ module Bob
8
8
  end
9
9
 
10
10
  def self.find(policy_name)
11
- response = get("timeoff/policies", { policyName: policy_name })
11
+ response = get('timeoff/policies', { policyName: policy_name })
12
12
  BaseParser.new(response).fields
13
13
  end
14
14
 
15
15
  def self.names_for(policy_name)
16
- get("timeoff/policies/names", { policyTypeName: policy_name })['policies']
16
+ get('timeoff/policies/names', { policyTypeName: policy_name })['policies']
17
17
  end
18
18
  end
19
19
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Bob
4
4
  module Configuration
5
- VALID_OPTIONS_KEYS = %i[access_token access_user_name api_version api_key].freeze
5
+ VALID_OPTIONS_KEYS = %i[access_token access_user_name api_version api_key use_sandbox].freeze
6
6
  attr_accessor(*VALID_OPTIONS_KEYS)
7
7
 
8
8
  # Sets all configuration options to their default values
@@ -27,6 +27,7 @@ module Bob
27
27
  self.access_token = ENV['ACCESS_TOKEN']
28
28
  self.access_user_name = ENV['ACCESS_USER_NAME']
29
29
  self.api_key = ENV['API_KEY']
30
+ self.use_sandbox = false
30
31
  end
31
32
  end
32
33
  end
@@ -31,7 +31,7 @@ module Models
31
31
  end
32
32
 
33
33
  def city
34
- address.city
34
+ address.city
35
35
  end
36
36
 
37
37
  def country
@@ -2,7 +2,7 @@
2
2
 
3
3
  class CompanyListParser < BaseParser
4
4
  def list
5
- json_response['values'].map {|attributes| Models::CompanyList.new(attributes) }
5
+ json_response['values'].map { |attributes| Models::CompanyList.new(attributes) }
6
6
  end
7
7
 
8
8
  def lists
data/lib/bob/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bob
4
- VERSION = '0.5.27'
4
+ VERSION = '0.5.29'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobhr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.27
4
+ version: 0.5.29
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lien Van Den Steen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-23 00:00:00.000000000 Z
11
+ date: 2023-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json