Class: Gusto::TimeOffPoliciesClient

Inherits:
Object
  • Object
show all
Defined in:
lib/fern_gusto/time_off_policies/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Gusto::TimeOffPoliciesClient

Parameters:



30
31
32
# File 'lib/fern_gusto/time_off_policies/client.rb', line 30

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientGusto::RequestClient (readonly)



25
26
27
# File 'lib/fern_gusto/time_off_policies/client.rb', line 25

def request_client
  @request_client
end

Instance Method Details

#add_employees(time_off_policy_uuid:, employees: nil, request_options: nil) ⇒ Object

api.time_off_policies.add_employees(time_off_policy_uuid: “time_off_policy_uuid”)



307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
# File 'lib/fern_gusto/time_off_policies/client.rb', line 307

def add_employees(time_off_policy_uuid:, employees: nil, request_options: nil)
  response = @request_client.conn.put do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), employees: employees }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}/add_employees"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#calculate_accruing_time_off_hours(payroll_id:, employee_id:, regular_hours_worked: nil, overtime_hours_worked: nil, double_overtime_hours_worked: nil, pto_hours_used: nil, sick_hours_used: nil, request_options: nil) ⇒ Object

)



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/fern_gusto/time_off_policies/client.rb', line 70

def calculate_accruing_time_off_hours(payroll_id:, employee_id:, regular_hours_worked: nil, overtime_hours_worked: nil, double_overtime_hours_worked: nil, pto_hours_used: nil, sick_hours_used: nil, request_options: nil)
  response = @request_client.conn.post do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), regular_hours_worked: regular_hours_worked, overtime_hours_worked: overtime_hours_worked, double_overtime_hours_worked: double_overtime_hours_worked, pto_hours_used: pto_hours_used, sick_hours_used: sick_hours_used }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/payrolls/#{payroll_id}/employees/#{employee_id}/calculate_accruing_time_off_hours"
end
  parsed_json = JSON.parse(response.body)
  parsed_json&.map do | item |
    item = item.to_json
    Gusto::AccruingTimeOffHour.from_json(json_object: item)
  end
end

#create(company_uuid:, name:, policy_type:, accrual_method:, accrual_rate: nil, accrual_rate_unit: nil, paid_out_on_termination: nil, accrual_waiting_period_days: nil, carryover_limit_hours: nil, max_accrual_hours_per_year: nil, max_hours: nil, request_options: nil) ⇒ Object

)



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
# File 'lib/fern_gusto/time_off_policies/client.rb', line 269

def create(company_uuid:, name:, policy_type:, accrual_method:, accrual_rate: nil, accrual_rate_unit: nil, paid_out_on_termination: nil, accrual_waiting_period_days: nil, carryover_limit_hours: nil, max_accrual_hours_per_year: nil, max_hours: nil, request_options: nil)
  response = @request_client.conn.post do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), name: name, policy_type: policy_type, accrual_method: accrual_method, accrual_rate: accrual_rate, accrual_rate_unit: accrual_rate_unit, paid_out_on_termination: paid_out_on_termination, accrual_waiting_period_days: accrual_waiting_period_days, carryover_limit_hours: carryover_limit_hours, max_accrual_hours_per_year: max_accrual_hours_per_year, max_hours: max_hours }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/time_off_policies"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#deactivate(time_off_policy_uuid:, request_options: nil) ⇒ Object

api.time_off_policies.deactivate(time_off_policy_uuid: “time_off_policy_uuid”)



411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
# File 'lib/fern_gusto/time_off_policies/client.rb', line 411

def deactivate(time_off_policy_uuid:, request_options: nil)
  response = @request_client.conn.put do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  unless request_options.nil? || request_options&.additional_body_parameters.nil?
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
  end
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}/deactivate"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#get(time_off_policy_uuid:, request_options: nil) ⇒ Object

api.time_off_policies.get(time_off_policy_uuid: “time_off_policy_uuid”)



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/fern_gusto/time_off_policies/client.rb', line 107

def get(time_off_policy_uuid:, request_options: nil)
  response = @request_client.conn.get do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  unless request_options.nil? || request_options&.additional_body_parameters.nil?
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
  end
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#list(company_uuid:, request_options: nil) ⇒ Object

api.time_off_policies.list(company_uuid: “company_uuid”)



205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
# File 'lib/fern_gusto/time_off_policies/client.rb', line 205

def list(company_uuid:, request_options: nil)
  response = @request_client.conn.get do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  unless request_options.nil? || request_options&.additional_body_parameters.nil?
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
  end
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/time_off_policies"
end
  parsed_json = JSON.parse(response.body)
  parsed_json&.map do | item |
    item = item.to_json
    Gusto::TimeOffPolicy.from_json(json_object: item)
  end
end

#remove_employees(time_off_policy_uuid:, employees: nil, request_options: nil) ⇒ Object

api.time_off_policies.remove_employees(time_off_policy_uuid: “time_off_policy_uuid”)



342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
# File 'lib/fern_gusto/time_off_policies/client.rb', line 342

def remove_employees(time_off_policy_uuid:, employees: nil, request_options: nil)
  response = @request_client.conn.put do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), employees: employees }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}/remove_employees"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#update(time_off_policy_uuid:, name: nil, accrual_method: nil, accrual_rate: nil, accrual_rate_unit: nil, paid_out_on_termination: nil, accrual_waiting_period_days: nil, carryover_limit_hours: nil, max_accrual_hours_per_year: nil, max_hours: nil, request_options: nil) ⇒ Object

)



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/fern_gusto/time_off_policies/client.rb', line 172

def update(time_off_policy_uuid:, name: nil, accrual_method: nil, accrual_rate: nil, accrual_rate_unit: nil, paid_out_on_termination: nil, accrual_waiting_period_days: nil, carryover_limit_hours: nil, max_accrual_hours_per_year: nil, max_hours: nil, request_options: nil)
  response = @request_client.conn.put do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), name: name, accrual_method: accrual_method, accrual_rate: accrual_rate, accrual_rate_unit: accrual_rate_unit, paid_out_on_termination: paid_out_on_termination, accrual_waiting_period_days: accrual_waiting_period_days, carryover_limit_hours: carryover_limit_hours, max_accrual_hours_per_year: max_accrual_hours_per_year, max_hours: max_hours }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end

#update_balance(time_off_policy_uuid:, employees: nil, request_options: nil) ⇒ Object

api.time_off_policies.update_balance(time_off_policy_uuid: “time_off_policy_uuid”)



378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
# File 'lib/fern_gusto/time_off_policies/client.rb', line 378

def update_balance(time_off_policy_uuid:, employees: nil, request_options: nil)
  response = @request_client.conn.put do | req |
  unless request_options&.timeout_in_seconds.nil?
req.options.timeout = request_options.timeout_in_seconds
  end
  unless request_options&.token.nil?
req.headers["Authorization"] = request_options.token
  end
  unless request_options&.gusto_api_version.nil?
req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
  end
  req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
  end
  req.body = { **(request_options&.additional_body_parameters || {}), employees: employees }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/time_off_policies/#{time_off_policy_uuid}/balance"
end
  Gusto::TimeOffPolicy.from_json(json_object: response.body)
end