bamboozled-gitlab 0.2.10 → 0.2.11

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: 1bb824cff5b90ba6e27dba753824572e334f507dd0e1e576de477d43fde9eed4
4
- data.tar.gz: 3cc9d10446f2b8ff1cc9841e0181e79f309b6094ff458cc1a7c897a803bc7474
3
+ metadata.gz: ee27d54dc3280a0524f21ee7104ab5951979e8f7aa6ac1f41d7d29fa943241e0
4
+ data.tar.gz: 6ce20114187af5808ecf10a2134cf5afb5291bca4aaeb53a2d403c69b97dc94c
5
5
  SHA512:
6
- metadata.gz: 36985162f4df37beb37760054b408365d3bd02ea93244c2062aaadbfc2f7606c3c8f3ce79ea484ddda52c28f43196fadf5061f0cd0f4424455c99661189905fd
7
- data.tar.gz: 50a32b7285feceb4a1091272c2b559e1cecb13330228e337fc2c71b91ba04cfb84fe0f809b38da2b6c024977e9797695ad694b6e78e690e34b36933e537dbb2f
6
+ metadata.gz: 65d653cf4922cfd0a0fa3cb97449ded66648927555de816e3187e2a304516901f9fd61d5971b4b45800e660d6192d4c222883e75805abe9b0a4589b50c86a59c
7
+ data.tar.gz: 35a49de100dd127d026c506da95adfc4541c8d5f7472d98a71f64e14606af6651c858dd87e337e2a6a5d025c1418bd11d4476b4f842615f1d6cace4864648a9e
data/README.md CHANGED
@@ -158,6 +158,11 @@ Please take the time to go through our [contribution guidelines](CONTRIBUTING.md
158
158
  Special thanks to all the awesome people who have helped make this gem better.
159
159
  You can see a list of them [here](https://github.com/Skookum/bamboozled/graphs/contributors).
160
160
 
161
+ #### Deploying to rubygems
162
+ 1. Update the version in the `lib/bamboozled/version.rb` file
163
+ 2. Update specs to use that version
164
+ 3. In github, add a [release](https://github.com/Skookum/bamboozled/releases) off the master branch. This will trigger the github action to deploy to rubygems
165
+
161
166
  ## License
162
167
 
163
168
  This project is licensed under the terms of the MIT license. See the
data/bamboozled.gemspec CHANGED
@@ -4,10 +4,10 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "bamboozled/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = 'bamboozled-gitlab'
7
+ spec.name = "bamboozled-gitlab"
8
8
  spec.version = Bamboozled::VERSION
9
9
  spec.authors = ["Mark Rickert", "Lien Van Den Steen"]
10
- spec.email = ["mjar81@gmail.com", 'lvandensteen@gitlab.com']
10
+ spec.email = ["mjar81@gmail.com", "lvandensteen@gitlab.com"]
11
11
  spec.summary = "A Ruby wrapper for the BambooHR API http://www.bamboohr.com/"
12
12
  spec.description = "Bamboozled wraps the BambooHR API without the use of Rails dependencies."
13
13
  spec.homepage = "http://github.com/Skookum/bamboozled"
@@ -65,12 +65,27 @@ module Bamboozled
65
65
 
66
66
  options = {
67
67
  body: params.to_json,
68
- headers: { 'Content-Type' => 'application/json' }
68
+ headers: { "Content-Type" => "application/json" }
69
69
  }
70
70
 
71
71
  request(:put, "employees/#{employee_id}/time_off/balance_adjustment", options)
72
72
  end
73
73
 
74
+ def time_off_policies(employee_id)
75
+ request(:get, "employees/#{employee_id}/time_off/policies")
76
+ end
77
+
78
+ def add_time_off_policies(employee_id, policies)
79
+ allowed_keys = %i[timeOffPolicyId accrualStartDate]
80
+ policies = policies.map { |policy| policy.keep_if { |k, _| allowed_keys.include? k } }
81
+
82
+ options = {
83
+ body: policies.to_json
84
+ }
85
+
86
+ request(:put, "employees/#{employee_id}/time_off/policies", options)
87
+ end
88
+
74
89
  def photo_binary(employee_id)
75
90
  request(:get, "employees/#{employee_id}/photo/small")
76
91
  end
@@ -22,6 +22,13 @@ module Bamboozled
22
22
  def time_off_types
23
23
  request(:get, "meta/time_off/types")
24
24
  end
25
+
26
+ def time_off_policies
27
+ options = {
28
+ headers: { "Content-Type" => "application/json" }
29
+ }
30
+ request(:get, "meta/time_off/policies", options)
31
+ end
25
32
  end
26
33
  end
27
34
  end
@@ -1,3 +1,3 @@
1
1
  module Bamboozled
2
- VERSION = "0.2.10".freeze
2
+ VERSION = "0.2.11".freeze
3
3
  end
@@ -0,0 +1,5 @@
1
+ HTTP/1.1 200 OK
2
+ content-type: application/json; charset=utf-8
3
+ date: Tue, 17 Jun 2014 19:25:35 UTC
4
+
5
+ [{"timeOffPolicyId":"14","timeOffTypeId":"3","accrualStartDate":"2014-06-17"}]
@@ -0,0 +1,5 @@
1
+ HTTP/1.1 200 OK
2
+ content-type: application/json; charset=utf-8
3
+ date: Tue, 17 Jun 2014 19:25:35 UTC
4
+
5
+ [{"id":"14","timeOffTypeId":"3","name":"BambooHR Manual Policy","effectiveDate":null,"type":"manual"}]
@@ -71,16 +71,40 @@ RSpec.describe "Employees" do
71
71
  stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
72
72
 
73
73
  options = {
74
- date: '2014-06-17',
74
+ date: "2014-06-17",
75
75
  timeOffTypeId: 2,
76
76
  amount: -1.5,
77
- note: 'test'
77
+ note: "test"
78
78
  }
79
79
 
80
- result = @client.employee.time_off_balance_adjustment('44259', options)
80
+ result = @client.employee.time_off_balance_adjustment("44259", options)
81
81
  expect(result).to be_a Hash
82
82
  end
83
83
 
84
+ it "Gets an employee's time off policies" do
85
+ response = File.new("spec/fixtures/employee_time_off_policies.json")
86
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
87
+
88
+ policies = @client.employee.time_off_policies("44259")
89
+
90
+ expect(policies).to be_a Array
91
+ expect(policies.first.keys).to match_array %w(timeOffPolicyId timeOffTypeId accrualStartDate)
92
+ end
93
+
94
+ it "adds an employee time off policy" do
95
+ response = File.new("spec/fixtures/employee_time_off_policies.json")
96
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
97
+
98
+ policies = [{
99
+ timeOffPolicyId: 2,
100
+ accrualStartDate: "2014-06-17"
101
+ }]
102
+
103
+ result = @client.employee.add_time_off_policies("44259", policies)
104
+ expect(policies).to be_a Array
105
+ expect(result.first.keys).to match_array %w(timeOffPolicyId timeOffTypeId accrualStartDate)
106
+ end
107
+
84
108
  it "returns the proper url using employee email address" do
85
109
  hashed = "4fdce145bab6d27d69e34403f99fd11c" # Hash of me@here.com
86
110
  required_url = "http://x.bamboohr.com/employees/photos/?h=#{hashed}"
@@ -52,4 +52,12 @@ RSpec.describe "Meta" do
52
52
  types = @client.meta.time_off_types
53
53
  expect(types).to be_a Hash
54
54
  end
55
+
56
+ it "Gets time off policies" do
57
+ res = get_response("spec/fixtures/meta_time_off_policies.json")
58
+ make_stub(res)
59
+
60
+ types = @client.meta.time_off_types
61
+ expect(types).to be_a Array
62
+ end
55
63
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bamboozled-gitlab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ version: 0.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rickert
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-05-25 00:00:00.000000000 Z
12
+ date: 2021-06-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -138,7 +138,6 @@ files:
138
138
  - logos/bamboozled_logo_green.png
139
139
  - logos/skookum_mark_black.png
140
140
  - logos/skookum_mark_black.svg
141
- - relnotes/v0.1.0.md
142
141
  - spec/fixtures/add_employee_details.json
143
142
  - spec/fixtures/add_employee_response.json
144
143
  - spec/fixtures/add_employee_xml.yml
@@ -146,11 +145,13 @@ files:
146
145
  - spec/fixtures/custom_report.json
147
146
  - spec/fixtures/employee_emails.json
148
147
  - spec/fixtures/employee_table_details.json
148
+ - spec/fixtures/employee_time_off_policies.json
149
149
  - spec/fixtures/job_info.xml
150
150
  - spec/fixtures/last_changed.json
151
151
  - spec/fixtures/meta_fields.json
152
152
  - spec/fixtures/meta_lists.json
153
153
  - spec/fixtures/meta_tables.json
154
+ - spec/fixtures/meta_time_off_policies.json
154
155
  - spec/fixtures/meta_time_off_types.json
155
156
  - spec/fixtures/meta_users.json
156
157
  - spec/fixtures/one_employee.json
@@ -209,11 +210,13 @@ test_files:
209
210
  - spec/fixtures/custom_report.json
210
211
  - spec/fixtures/employee_emails.json
211
212
  - spec/fixtures/employee_table_details.json
213
+ - spec/fixtures/employee_time_off_policies.json
212
214
  - spec/fixtures/job_info.xml
213
215
  - spec/fixtures/last_changed.json
214
216
  - spec/fixtures/meta_fields.json
215
217
  - spec/fixtures/meta_lists.json
216
218
  - spec/fixtures/meta_tables.json
219
+ - spec/fixtures/meta_time_off_policies.json
217
220
  - spec/fixtures/meta_time_off_types.json
218
221
  - spec/fixtures/meta_users.json
219
222
  - spec/fixtures/one_employee.json
data/relnotes/v0.1.0.md DELETED
@@ -1,13 +0,0 @@
1
- ### New Features
2
-
3
- * New method `Employee#add` allows client to create new employees. ([@kylefdoherty][])
4
- * New method `Employee#update` allows client to update new employees. ([@kylefdoherty][])
5
-
6
- ### Changes
7
-
8
- ### Bug Fixes
9
-
10
- * Added missing documentation for `Employee#add`. ([@mjording][])
11
-
12
- [@kylefdoherty]: https://github.com/kylefdoherty
13
- [@mjording]: https://github.com/mjording