bobhr 0.5.5 → 0.5.8

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: ae33057b40776c2a9e2fdb50c605eba7637b19513773ec845739559b20e40a48
4
- data.tar.gz: 2811a2aee737af28f3d99b114876c3d3c6d6340cdf24cf3e0b55394577a98f48
3
+ metadata.gz: 33a9f7791ceb562c80e23dbd25dfd819178b3a0fc70ae94c51e607d1107df661
4
+ data.tar.gz: cd7d84c45ad9ed8d9e7beef7f9921402b01f7617801fa015a6c54d3b3a4ff170
5
5
  SHA512:
6
- metadata.gz: 6ad2fa72340993973e17a3a7f54b1645f69155e77f3eaebf12b02be2f55a0b746d36a273b727e843c27fdef1f4c793d50f2fa77fe96ae1062a57cdd3a1e9ac76
7
- data.tar.gz: 70f66303751bf9d6492e849625e7e0b58f03f6721b92042d7cdbd8127e29b71753e33f4ac2a0e22fc412691d343ac1caa198e8d0fb5179060a9963d26f20abdd
6
+ metadata.gz: 9c163d409a32c041395e5e35f48f306b2ba09851395e076071737ca456ecdbc102ddd6a625ca29752bd0c5d73eb31a75715305a47da21d87ad01084eb3f70914
7
+ data.tar.gz: 5192da79cb0841b97c00499351d4bba7260e945e7860a0402559f7815e5f85b952d1a04ce06752336449c955bdfb40c44df8c4debaedc947036b1e262bb40a6d
data/lib/bob/api/api.rb CHANGED
@@ -12,15 +12,25 @@ module Bob
12
12
 
13
13
  def self.get(endpoint, params = {}, csv_response: false)
14
14
  url = build_url(endpoint, params)
15
- response = RestClient.get(url, headers)
15
+ response = RestClient.get(url, authorization_header)
16
16
  return create_csv(response.body) if csv_response
17
17
 
18
18
  JSON.parse(response.body)
19
19
  end
20
20
 
21
- def self.post(endpoint, params = {})
21
+ def self.post(endpoint, params = {}, use_api_key: false)
22
22
  url = build_url(endpoint)
23
- response = RestClient.post(url, params.to_json, headers.merge(content_headers))
23
+ response = RestClient.post(
24
+ url,
25
+ params.to_json,
26
+ authorization_header(use_api_key: use_api_key).merge(content_headers)
27
+ )
28
+ response.code
29
+ end
30
+
31
+ def self.post_media(endpoint, params = {})
32
+ url = build_url(endpoint)
33
+ response = RestClient.post(url, params.to_json, authorization_header.merge(content_headers))
24
34
  response.code
25
35
  end
26
36
 
@@ -30,16 +40,26 @@ module Bob
30
40
  response.code
31
41
  end
32
42
 
33
- def self.put(endpoint, params = {})
43
+ def self.put(endpoint, params = {}, use_api_key: false)
34
44
  url = build_url(endpoint)
35
- response = RestClient.put(url, params.to_json, headers.merge(content_headers))
45
+ response = RestClient.put(
46
+ url,
47
+ params.to_json,
48
+ authorization_header(use_api_key: use_api_key).merge(content_headers)
49
+ )
36
50
  response.code
37
51
  end
38
52
 
39
- def self.headers
40
- {
41
- Authorization: "Basic #{Base64.strict_encode64("#{Bob.access_user_name}:#{Bob.access_token}")}"
42
- }
53
+ def self.authorization_header(use_api_key: false)
54
+ if use_api_key
55
+ {
56
+ Authorization: Bob.api_key
57
+ }
58
+ else
59
+ {
60
+ Authorization: "Basic #{Base64.strict_encode64("#{Bob.access_user_name}:#{Bob.access_token}")}"
61
+ }
62
+ end
43
63
  end
44
64
 
45
65
  def self.content_headers
@@ -4,11 +4,11 @@ module Bob
4
4
  module Employee
5
5
  class Documents < API
6
6
  def self.add_public_document(employee_id, params = {})
7
- post("docs/people/#{employee_id}/shared", params)
7
+ post("docs/people/#{employee_id}/shared", params, use_api_key: true)
8
8
  end
9
9
 
10
10
  def self.add_private_document(employee_id, params = {})
11
- post("docs/people/#{employee_id}/confidential", params)
11
+ post("docs/people/#{employee_id}/confidential", params, use_api_key: true)
12
12
  end
13
13
  end
14
14
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bob
4
+ module Employee
5
+ class WorkHistory < API
6
+ def self.all(employee_id)
7
+ response = get("people/#{employee_id}/work")
8
+ WorkHistoryParser.new(response).work_histories
9
+ end
10
+
11
+ def self.update(employee_id, work_history_id, params)
12
+ put(
13
+ "people/#{employee_id}/work/#{work_history_id}",
14
+ params,
15
+ use_api_key: true
16
+ )
17
+ end
18
+ end
19
+ end
20
+ end
@@ -6,6 +6,7 @@ require_relative 'employee/salaries'
6
6
  require_relative 'employee/equity_grants'
7
7
  require_relative 'employee/documents'
8
8
  require_relative 'employee/variable_payments'
9
+ require_relative 'employee/work_history'
9
10
 
10
11
  module Bob
11
12
  class Employees < API
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Bob
4
4
  module Configuration
5
- VALID_OPTIONS_KEYS = %i[access_token access_user_name api_version].freeze
5
+ VALID_OPTIONS_KEYS = %i[access_token access_user_name api_version api_key].freeze
6
6
  attr_accessor(*VALID_OPTIONS_KEYS)
7
7
 
8
8
  # Sets all configuration options to their default values
@@ -26,6 +26,7 @@ module Bob
26
26
  self.api_version = 'v1'
27
27
  self.access_token = ENV['ACCESS_TOKEN']
28
28
  self.access_user_name = ENV['ACCESS_USER_NAME']
29
+ self.api_key = ENV['API_KEY']
29
30
  end
30
31
  end
31
32
  end
@@ -69,5 +69,13 @@ module Models
69
69
  def fourth_level_manager
70
70
  second_level_manager.second_level_manager
71
71
  end
72
+
73
+ def cost_center
74
+ payroll.custom.field_1634476091511
75
+ end
76
+
77
+ def personal_email
78
+ home.private_email
79
+ end
72
80
  end
73
81
  end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Models
4
+ class WorkHistory < Models::Base
5
+ end
6
+ end
data/lib/bob/models.rb CHANGED
@@ -10,3 +10,4 @@ require_relative 'models/time_off'
10
10
  require_relative 'models/company_list'
11
11
  require_relative 'models/company_field'
12
12
  require_relative 'models/onboarding_wizard'
13
+ require_relative 'models/work_history'
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WorkHistoryParser < BaseParser
4
+ def work_histories
5
+ json_response['values'].map { |attributes| Models::WorkHistory.new(attributes) }
6
+ end
7
+ end
data/lib/bob/parsers.rb CHANGED
@@ -10,3 +10,4 @@ require_relative 'parsers/time_off_parser'
10
10
  require_relative 'parsers/company_list_parser'
11
11
  require_relative 'parsers/company_field_parser'
12
12
  require_relative 'parsers/onboarding_wizard_parser'
13
+ require_relative 'parsers/work_history_parser'
data/lib/bob/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bob
4
- VERSION = '0.5.5'
4
+ VERSION = '0.5.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobhr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.8
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-03-17 00:00:00.000000000 Z
11
+ date: 2022-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -69,6 +69,7 @@ files:
69
69
  - lib/bob/api/employee/salaries.rb
70
70
  - lib/bob/api/employee/trainings.rb
71
71
  - lib/bob/api/employee/variable_payments.rb
72
+ - lib/bob/api/employee/work_history.rb
72
73
  - lib/bob/api/employees.rb
73
74
  - lib/bob/api/metadata.rb
74
75
  - lib/bob/api/metadata/company_fields.rb
@@ -88,6 +89,7 @@ files:
88
89
  - lib/bob/models/time_off.rb
89
90
  - lib/bob/models/training.rb
90
91
  - lib/bob/models/variable_payment.rb
92
+ - lib/bob/models/work_history.rb
91
93
  - lib/bob/parsers.rb
92
94
  - lib/bob/parsers/base_parser.rb
93
95
  - lib/bob/parsers/company_field_parser.rb
@@ -99,6 +101,7 @@ files:
99
101
  - lib/bob/parsers/time_off_parser.rb
100
102
  - lib/bob/parsers/training_parser.rb
101
103
  - lib/bob/parsers/variable_payment_parser.rb
104
+ - lib/bob/parsers/work_history_parser.rb
102
105
  - lib/bob/util.rb
103
106
  - lib/bob/version.rb
104
107
  - lib/bob/webhooks.rb