peoplegroup-connectors 0.3.2 → 0.4.3

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: 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