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 +4 -4
- data/lib/peoplegroup/connectors/hris.rb +58 -0
- data/lib/peoplegroup/connectors/version.rb +1 -1
- data/lib/peoplegroup/connectors.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 64e2231a0ed45cc92728919124d1cbf226a1bc73da16496a8a11ad26eac66d87
|
4
|
+
data.tar.gz: f32eb6f0495b7ab5b43b1eb3b3c8e30a0632c9647fcc70cb1c6c14fb43422df1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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.
|
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
|