Class: Gusto::PayrollClient

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Gusto::PayrollClient

Parameters:



59
60
61
62
63
64
# File 'lib/fern_gusto/payroll/client.rb', line 59

def initialize(request_client:)
  @request_client = request_client
  @external_payrolls = Gusto::Payroll::ExternalPayrollsClient.new(request_client: request_client)
  @pay_schedules = Gusto::Payroll::PaySchedulesClient.new(request_client: request_client)
  @earning_types = Gusto::Payroll::EarningTypesClient.new(request_client: request_client)
end

Instance Attribute Details

#earning_typesGusto::Payroll::EarningTypesClient (readonly)



54
55
56
# File 'lib/fern_gusto/payroll/client.rb', line 54

def earning_types
  @earning_types
end

#external_payrollsGusto::Payroll::ExternalPayrollsClient (readonly)



50
51
52
# File 'lib/fern_gusto/payroll/client.rb', line 50

def external_payrolls
  @external_payrolls
end

#pay_schedulesGusto::Payroll::PaySchedulesClient (readonly)



52
53
54
# File 'lib/fern_gusto/payroll/client.rb', line 52

def pay_schedules
  @pay_schedules
end

#request_clientGusto::RequestClient (readonly)



48
49
50
# File 'lib/fern_gusto/payroll/client.rb', line 48

def request_client
  @request_client
end

Instance Method Details

#calculate(company_id:, payroll_id:, request_options: nil) ⇒ Object

api.payroll.calculate(company_id: “company_id”, payroll_id: “payroll_id”)



606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
# File 'lib/fern_gusto/payroll/client.rb', line 606

def calculate(company_id:, payroll_id:, 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/companies/#{company_id}/payrolls/#{payroll_id}/calculate"
end
end

#cancel(company_id:, payroll_id:, request_options: nil) ⇒ Object

api.payroll.cancel(company_id: “company_id”, payroll_id: “payroll_id”)



688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
# File 'lib/fern_gusto/payroll/client.rb', line 688

def cancel(company_id:, payroll_id:, 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/companies/#{company_id}/payrolls/#{payroll_id}/cancel"
end
  Gusto::Payrolls::Payroll.from_json(json_object: response.body)
end

#create(company_id:, off_cycle:, off_cycle_reason:, start_date:, end_date:, pay_schedule_uuid: nil, employee_uuids: nil, check_date: nil, withholding_pay_period: nil, skip_regular_deductions: nil, fixed_withholding_rate: nil, request_options: nil) ⇒ Object

)



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/fern_gusto/payroll/client.rb', line 163

def create(company_id:, off_cycle:, off_cycle_reason:, start_date:, end_date:, pay_schedule_uuid: nil, employee_uuids: nil, check_date: nil, withholding_pay_period: nil, skip_regular_deductions: nil, fixed_withholding_rate: 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 || {}), off_cycle: off_cycle, off_cycle_reason: off_cycle_reason, start_date: start_date, end_date: end_date, pay_schedule_uuid: pay_schedule_uuid, employee_uuids: employee_uuids, check_date: check_date, withholding_pay_period: withholding_pay_period, skip_regular_deductions: skip_regular_deductions, fixed_withholding_rate: fixed_withholding_rate }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/payrolls"
end
  Gusto::Payrolls::PayrollPrepared.from_json(json_object: response.body)
end

#delete(company_id:, payroll_id:, async: nil, request_options: nil) ⇒ Object

api.payroll.delete(company_id: “company_id”, payroll_id: “payroll_id”)



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

def delete(company_id:, payroll_id:, async: nil, request_options: nil)
  response = @request_client.conn.delete 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
  req.params = { **(request_options&.additional_query_parameters || {}), "async": async }.compact
  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_id}/payrolls/#{payroll_id}"
end
end

#generate_printable_checks(payroll_id:, printing_format:, starting_check_number: nil, request_options: nil) ⇒ Object

api.payroll.generate_printable_checks(payroll_id: “payroll_id”, printing_format: “printing_format”)



807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
# File 'lib/fern_gusto/payroll/client.rb', line 807

def generate_printable_checks(payroll_id:, printing_format:, starting_check_number: 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 || {}), printing_format: printing_format, starting_check_number: starting_check_number }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/payrolls/#{payroll_id}/generated_documents/printable_payroll_checks"
end
  Gusto::PayrollCheck.from_json(json_object: response.body)
end

#get(company_id:, payroll_id:, include: nil, request_options: nil) ⇒ Object

api.payroll.get(company_id: “company_id”, payroll_id: “payroll_id”)



249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/fern_gusto/payroll/client.rb', line 249

def get(company_id:, payroll_id:, include: nil, 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
  req.params = { **(request_options&.additional_query_parameters || {}), "include": include }.compact
  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_id}/payrolls/#{payroll_id}"
end
  Gusto::Payrolls::Payroll.from_json(json_object: response.body)
end

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

api.payroll.get_blockers(company_uuid: “company_uuid”)



461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
# File 'lib/fern_gusto/payroll/client.rb', line 461

def get_blockers(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}/payrolls/blockers"
end
  parsed_json = JSON.parse(response.body)
  parsed_json&.map do | item |
    item = item.to_json
    Gusto::PayrollBlocker.from_json(json_object: item)
  end
end

#get_pay_stub(payroll_id:, employee_id:, request_options: nil) ⇒ Object

api.payroll.get_pay_stub(payroll_id: “payroll_id”, employee_id: “employee_id”)



726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
# File 'lib/fern_gusto/payroll/client.rb', line 726

def get_pay_stub(payroll_id:, employee_id:, 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/payrolls/#{payroll_id}/employees/#{employee_id}/pay_stub"
end
end

#get_receipt(payroll_uuid:, request_options: nil) ⇒ Object

api.payroll.get_receipt(payroll_uuid: “payroll_uuid”)



422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
# File 'lib/fern_gusto/payroll/client.rb', line 422

def get_receipt(payroll_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/payrolls/#{payroll_uuid}/receipt"
end
  Gusto::PayrollReceipt.from_json(json_object: response.body)
end

#get_reversals(company_id:, page: nil, per: nil, request_options: nil) ⇒ Object

api.payroll.get_reversals(company_id: “company_id”)



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/fern_gusto/payroll/client.rb', line 199

def get_reversals(company_id:, page: nil, per: nil, 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
  req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
  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_id}/payroll_reversals"
end
  Gusto::PayrollReversal.from_json(json_object: response.body)
end

#gross_up(payroll_uuid:, employee_uuid:, net_pay:, request_options: nil) ⇒ Object

)



562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
# File 'lib/fern_gusto/payroll/client.rb', line 562

def gross_up(payroll_uuid:, employee_uuid:, net_pay:, 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 || {}), employee_uuid: employee_uuid, net_pay: net_pay }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/payrolls/#{payroll_uuid}/gross_up"
end
  Gusto::GrossUpPay.from_json(json_object: response.body)
end

#list(company_id:, processing_statuses: nil, payroll_types: nil, include: nil, start_date: nil, end_date: nil, sort_order: nil, request_options: nil) ⇒ Object

api.payroll.list(company_id: “company_id”)



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/fern_gusto/payroll/client.rb', line 101

def list(company_id:, processing_statuses: nil, payroll_types: nil, include: nil, start_date: nil, end_date: nil, sort_order: nil, 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
  req.params = { **(request_options&.additional_query_parameters || {}), "processing_statuses": processing_statuses, "payroll_types": payroll_types, "include": include, "start_date": start_date, "end_date": end_date, "sort_order": sort_order }.compact
  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_id}/payrolls"
end
  parsed_json = JSON.parse(response.body)
  parsed_json&.map do | item |
    item = item.to_json
    Gusto::Payrolls::PayrollMinimal.from_json(json_object: item)
  end
end

#list_pay_stubs(employee_id:, request_options: nil) ⇒ Object

api.payroll.list_pay_stubs(employee_id: “employee_id”)



760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
# File 'lib/fern_gusto/payroll/client.rb', line 760

def list_pay_stubs(employee_id:, 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/employees/#{employee_id}/pay_stubs"
end
  parsed_json = JSON.parse(response.body)
  parsed_json&.map do | item |
    item = item.to_json
    Gusto::Payrolls::EmployeePayStub.from_json(json_object: item)
  end
end

#prepare(company_id:, payroll_id:, request_options: nil) ⇒ Object

api.payroll.prepare(company_id: “company_id”, payroll_id: “payroll_id”)



381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
# File 'lib/fern_gusto/payroll/client.rb', line 381

def prepare(company_id:, payroll_id:, 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/companies/#{company_id}/payrolls/#{payroll_id}/prepare"
end
  Gusto::Payrolls::PayrollPrepared.from_json(json_object: response.body)
end

#skip_payroll(company_uuid:, payroll_type:, start_date: nil, end_date: nil, pay_schedule_uuid: nil, employee_uuids: nil, request_options: nil) ⇒ Object

)



519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
# File 'lib/fern_gusto/payroll/client.rb', line 519

def skip_payroll(company_uuid:, payroll_type:, start_date: nil, end_date: nil, pay_schedule_uuid: nil, employee_uuids: 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 || {}), payroll_type: payroll_type, start_date: start_date, end_date: end_date, pay_schedule_uuid: pay_schedule_uuid, employee_uuids: employee_uuids }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/payrolls/skip"
end
end

#submit(company_id:, payroll_id:, submission_blockers: nil, request_options: nil) ⇒ Object

api.payroll.submit(company_id: “company_id”, payroll_id: “payroll_id”)



652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
# File 'lib/fern_gusto/payroll/client.rb', line 652

def submit(company_id:, payroll_id:, submission_blockers: 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 || {}), submission_blockers: submission_blockers }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/payrolls/#{payroll_id}/submit"
end
end

#update(company_id:, payroll_id:, employee_compensations:, request_options: nil) ⇒ Object

)



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
# File 'lib/fern_gusto/payroll/client.rb', line 302

def update(company_id:, payroll_id:, employee_compensations:, 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 || {}), employee_compensations: employee_compensations }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/payrolls/#{payroll_id}"
end
  Gusto::Payrolls::PayrollPrepared.from_json(json_object: response.body)
end