peoplegroup-connectors 0.3.2 → 0.3.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: e11fbbfc05fdf0efd7656c6161148a5036a67c5c44b0adda3a285c95a39fc452
4
+ data.tar.gz: 552756cc48b2a412070ed3a0082fe531fb67d42a3e952a02560a7f2a48ce0b9e
5
5
  SHA512:
6
- metadata.gz: 84145033de07214b791c03198658167cd0890465d4d703186ee32e1836da4e480f173c56f97fe77fcb22b1ba1c70318fe170ea1465e503b7762316b6e7ff4e56
7
- data.tar.gz: e627711b772eea5a2196a0e6048ce91b835ea9af79cb49748dbe9cbbe3e5e3f4a871a631c1fc05cb5ba12a43b556a88635ad15b59cee81922162aefe45bcf401
6
+ metadata.gz: 02a76c3196fbac31dc392ddcdc7c074913ab24bb6f3d1415da7a799ffde049ca26ab887921e4ef2fdc4e7a3b3635051db887fabef96e40b94167012bfc46a1b1
7
+ data.tar.gz: 16fc5211cc8ab8a27e1225d60fee358dbe693eab41202cb096164bf14b3a9adba751ad8d0bf19781172e7d98d96a366fe296ca4a9de00d1b0d014b17e10eb637
@@ -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.3.3'
6
6
  end
7
7
  end
@@ -36,20 +36,32 @@ module PeopleGroup
36
36
  end
37
37
 
38
38
  # Grabs manager history for the specified team member or all team members.
39
- # @return [Array<PeopleGroup::Connectors::Models::ObjectifiedHash>]
39
+ # @return <PeopleGroup::Connectors::Models::ObjectifiedHash>
40
40
  # 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.
41
+ # employeeNumber - The team members employee number.
42
+ # hireDate - The team members hireDate or transition date.
43
+ # supervisorId - The team members future manager ID.
44
+ # previousManagerId - The team members previous manager id.
45
+ # department - The team members upcoming department
46
+ # division - The team members upcoming division.
47
+ # managerChangeGroup - This will always be nil.
44
48
  def manager_history(employee_number = nil)
45
49
  options = { report_name: ENV['WORKDAY_MANAGER_REPORT'] }
50
+ options[:params] = { 'Employee_ID' => employee_number } unless employee_number.nil?
51
+
52
+ resp = safe_report(**options).first
53
+ change_group = resp[:JOB_INFO_group]
54
+ reformatted = {
55
+ **resp.hash.except(:JOB_INFO_group),
56
+ 'transitionDate' => change_group.first['transitionDate'],
57
+ 'supervisorId' => change_group.first['supervisorId'],
58
+ 'jobTitle' => change_group.first['jobTitle'],
59
+ 'department' => change_group.first['department'],
60
+ 'division' => change_group.first['division'],
61
+ 'previousManagerId' => change_group[1]['supervisorId']
62
+ }
46
63
 
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)
64
+ ObjectifiedHash.new(reformatted)
53
65
  end
54
66
 
55
67
  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.3.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: 2022-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab