peoplegroup-connectors 0.3.2 → 0.4.3

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: 650a4395184dc769937ed0032dee3e145345a7274b4ae0dfefc0f86c95b67d0a
4
- data.tar.gz: d196017a2d4413f7cbea6e01bfb403ac5577b7b836f21037d929f4f8500d4c9c
3
+ metadata.gz: d7ea0fb60cf8904acdc70b3536b57e6fa800bdde94114c77c0dc4e1d58247812
4
+ data.tar.gz: 027d82d51fb70dd1be04a0ba6c31c04ca9e350a9f82543e006729a37b106127f
5
5
  SHA512:
6
- metadata.gz: 84145033de07214b791c03198658167cd0890465d4d703186ee32e1836da4e480f173c56f97fe77fcb22b1ba1c70318fe170ea1465e503b7762316b6e7ff4e56
7
- data.tar.gz: e627711b772eea5a2196a0e6048ce91b835ea9af79cb49748dbe9cbbe3e5e3f4a871a631c1fc05cb5ba12a43b556a88635ad15b59cee81922162aefe45bcf401
6
+ metadata.gz: 94591f8aeea81ea77cfe2d5027f534b19ce21185f2dc6724b693098da67e9e4c0bc769e90c647a082a3a50b2632fae118e21312110941eb7970c5d5ff615b1b9
7
+ data.tar.gz: c7c7f69af5baa0951c0dcf308a1eb5ab2d03407d668724016b26d668328a3ec432d64de2432d8acf04f7207cd7fb20f00f94da25fe59e4b0d779e97d5c2816b6
@@ -268,6 +268,10 @@ module PeopleGroup
268
268
  def departments
269
269
  @workday.departments
270
270
  end
271
+
272
+ def eligibility_status(employee_number)
273
+ @workday.eligibility_status(employee_number)
274
+ end
271
275
  end
272
276
  end
273
277
  end
@@ -26,8 +26,9 @@ module PeopleGroup
26
26
  end
27
27
 
28
28
  instance_variable_set("@#{key}", value)
29
+ @data[key.to_s] = value
30
+ @hash[key.to_sym] = value
29
31
  self.class.send(:attr_reader, key) # rubocop:disable GitlabSecurity/PublicSend
30
- @data[key] = value
31
32
  end
32
33
  end
33
34
 
@@ -38,6 +39,15 @@ module PeopleGroup
38
39
  @data.dig(*args)
39
40
  end
40
41
 
42
+ def except(*args)
43
+ args.each do |key|
44
+ @data.delete(key.to_s)
45
+ @hash.delete(key.to_sym)
46
+ instance_variable_set("@#{key}", nil)
47
+ end
48
+ self
49
+ end
50
+
41
51
  # Create a new instance from an array of Hashes
42
52
  def self.from_array(array)
43
53
  array.map { |data| new(data) if data.is_a?(Hash) }
@@ -45,12 +55,15 @@ module PeopleGroup
45
55
 
46
56
  # Maintains normal json data structure
47
57
  def [](key)
48
- @data[key.to_s]
58
+ @data[key.to_s] || @hash[key.to_sym]
49
59
  end
50
60
 
51
61
  # Allows us to override the json data
52
62
  def []=(key, value)
53
- @data[key.to_s] = value
63
+ sym = key.to_sym
64
+ str = key.to_s
65
+ @data[str] = value if @data[str]
66
+ @hash[sym] = value if @hash[sym]
54
67
  end
55
68
 
56
69
  # Return the stored raw hash value.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module PeopleGroup
4
4
  module Connectors
5
- VERSION = '0.3.2'
5
+ VERSION = '0.4.3'
6
6
  end
7
7
  end
@@ -35,21 +35,37 @@ module PeopleGroup
35
35
  @workers ||= safe_report(report_name: ENV['WORKDAY_WORKERS_REPORT'])
36
36
  end
37
37
 
38
+ def eligibility_status(employee_number)
39
+ safe_report(report_name: ENV['WORKDAY_ELIGIBILITY_REPORT'], params: { Employee_ID: employee_number })&.first
40
+ end
41
+
38
42
  # Grabs manager history for the specified team member or all team members.
39
- # @return [Array<PeopleGroup::Connectors::Models::ObjectifiedHash>]
43
+ # @return <PeopleGroup::Connectors::Models::ObjectifiedHash>
40
44
  # keys:
41
- # Reports_to - Employee_ID of who they were reporting too at this time.
42
- # Managed_From_Date - When they became the team members manager.
43
- # Managed_To_Date - The date they were no longer the team members manager. This field is missing if they are the current manager.
45
+ # employeeNumber - The team members employee number.
46
+ # hireDate - The team members hireDate or transition date.
47
+ # supervisorId - The team members future manager ID.
48
+ # previousManagerId - The team members previous manager id.
49
+ # department - The team members upcoming department
50
+ # division - The team members upcoming division.
51
+ # managerChangeGroup - This will always be nil.
44
52
  def manager_history(employee_number = nil)
45
53
  options = { report_name: ENV['WORKDAY_MANAGER_REPORT'] }
54
+ options[:params] = { 'Employee_ID' => employee_number } unless employee_number.nil?
55
+
56
+ resp = safe_report(**options).first
57
+ change_group = resp[:JOB_INFO_group]
58
+ reformatted = {
59
+ **resp.hash.except(:JOB_INFO_group),
60
+ 'transitionDate' => change_group.first['transitionDate'],
61
+ 'supervisorId' => change_group.first['supervisorId'],
62
+ 'jobTitle' => change_group.first['jobTitle'],
63
+ 'department' => change_group.first['department'],
64
+ 'division' => change_group.first['division'],
65
+ 'previousManagerId' => change_group[1]['supervisorId']
66
+ }
46
67
 
47
- if employee_number
48
- options[:params] = { 'Employee_ID' => employee_number } unless employee_number.nil?
49
- options[:nested_key] = 'Manager_Change_group'
50
- end
51
-
52
- safe_report(**options)
68
+ ObjectifiedHash.new(reformatted)
53
69
  end
54
70
 
55
71
  private
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peoplegroup-connectors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.3
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: 2022-06-16 00:00:00.000000000 Z
11
+ date: 2023-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.2.13
75
+ version: 0.2.14
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.2.13
82
+ version: 0.2.14
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: greenhouse_io-gitlab
85
85
  requirement: !ruby/object:Gem::Requirement