peoplegroup-connectors 0.1.81 → 0.1.82

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 59bf4a7262edf9f57f6cb78d1af2c51f26878aa2b03c5024e0675f34f7325b2d
4
- data.tar.gz: 4ca9690f2e103c0435cdcb2ad92ff782a2c777ffcf82aab0737f0fa0e0e8272b
3
+ metadata.gz: 64e2231a0ed45cc92728919124d1cbf226a1bc73da16496a8a11ad26eac66d87
4
+ data.tar.gz: f32eb6f0495b7ab5b43b1eb3b3c8e30a0632c9647fcc70cb1c6c14fb43422df1
5
5
  SHA512:
6
- metadata.gz: 5ac63c2ce2f22471a1ba87af06621243a0ef62ac0922ff4af153a31fa04e6bf7c6dc414c1b59a245e6120e273694f43c755e596a9930c7d51dbb9a1f8f930421
7
- data.tar.gz: fb23d5463e6bb43775698dce503de8ccd55a2d6c30dcfdeb7e3916d5dff57e62a785c8294eafd03e633693f94bbd1df1891fcfa4c03da6aaa61bdc857d8d2f8e
6
+ metadata.gz: ba26f83613dd2c32b3fc84da0f5c351d0fd15abda9061e4ab2645f2e492ef7a4d9e5768922a3a7b033f6a7aa3fb5ffad60c41c4bd3034ce01298234cd4ef5297
7
+ data.tar.gz: 6d4a5d234bd3d6ae65633a1f488c86d521f0d3678beabf0495f44545e1751bc5c49135fc755467e6068ac3b6b7b1fd69e5ee109f2c46e90c386413c8196c6706
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ # The HRIS module makes Workday responses look like BambooHR responses
4
+ module PeopleGroup
5
+ module Connectors
6
+ class Hris
7
+ def initialize
8
+ @workday = Workday.new
9
+ end
10
+
11
+ def employees
12
+ @workday.workers.map { |worker| format_worker(worker) }
13
+ end
14
+
15
+ private
16
+
17
+ # Convert Workday worker to BambooHR employee
18
+ def format_worker(worker)
19
+ {
20
+ 'id' => worker.dig(:worker_data, :worker_id),
21
+ 'firstName' => worker.dig(:worker_data, :personal_data, :name_data, :legal_name_data, :name_detail_data, :first_name),
22
+ 'lastName' => worker.dig(:worker_data, :personal_data, :name_data, :legal_name_data, :name_detail_data, :last_name),
23
+ 'preferredName' => worker.dig(:worker_data, :personal_data, :name_data, :preferred_name_data, :name_detail_data, :first_name),
24
+ 'customPreferredLastName' => worker.dig(:worker_data, :personal_data, :name_data, :preferred_name_data, :name_detail_data, :last_name),
25
+ **format_emails(worker),
26
+ 'status' => worker.dig(:worker_data, :employment_data, :worker_status_data, :active) == '1' ? 'Active' : 'Inactive',
27
+ 'hireDate' => worker.dig(:worker_data, :employment_data, :worker_status_data, :hire_date).to_s,
28
+ 'jobTitle' => worker.dig(:worker_data, :employment_data, :worker_job_data, :position_data, :position_title)
29
+ }
30
+ end
31
+
32
+ def format_emails(worker)
33
+ formatted_emails = {
34
+ 'workEmail' => nil,
35
+ 'homeEmail' => nil
36
+ }
37
+
38
+ email_addresses = worker.dig(:worker_data, :personal_data, :contact_data, :email_address_data)
39
+
40
+ return formatted_emails if email_addresses.nil?
41
+
42
+ # If there is only one email, Workday returns a hash
43
+ # If there are more than one, Workday returns an array of hashes
44
+ # rubocop:disable Style/ArrayCoercion
45
+ email_addresses = [email_addresses] unless email_addresses.is_a?(Array)
46
+ # rubocop:enable Style/ArrayCoercion
47
+
48
+ email_addresses.each do |email_address_data|
49
+ email_type = email_address_data.dig(:usage_data, :type_data, :type_reference, :id).second
50
+ formatted_emails['workEmail'] = email_address_data[:email_address] if email_type == 'WORK'
51
+ formatted_emails['homeEmail'] = email_address_data[:email_address] if email_type == 'HOME'
52
+ end
53
+
54
+ formatted_emails
55
+ end
56
+ end
57
+ end
58
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PeopleGroup
4
4
  module Connectors
5
- VERSION = '0.1.81'
5
+ VERSION = '0.1.82'
6
6
  end
7
7
  end
@@ -8,6 +8,7 @@ require_relative 'connectors/pto_roots'
8
8
  require_relative 'connectors/bamboo'
9
9
  require_relative 'connectors/greenhouse'
10
10
  require_relative 'connectors/workday'
11
+ require_relative 'connectors/hris'
11
12
  require_relative 'utils'
12
13
 
13
14
  module PeopleGroup
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peoplegroup-connectors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.81
4
+ version: 0.1.82
5
5
  platform: ruby
6
6
  authors:
7
7
  - lien van den steen
@@ -193,6 +193,7 @@ files:
193
193
  - lib/peoplegroup/connectors/gitlab.rb
194
194
  - lib/peoplegroup/connectors/google_sheets.rb
195
195
  - lib/peoplegroup/connectors/greenhouse.rb
196
+ - lib/peoplegroup/connectors/hris.rb
196
197
  - lib/peoplegroup/connectors/pto_roots.rb
197
198
  - lib/peoplegroup/connectors/slack.rb
198
199
  - lib/peoplegroup/connectors/version.rb