Class: Gusto::Employees::AsyncEmploymentsClient

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Gusto::Employees::AsyncEmploymentsClient

Parameters:



408
409
410
# File 'lib/fern_gusto/employees/employments/client.rb', line 408

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientGusto::AsyncRequestClient (readonly)



403
404
405
# File 'lib/fern_gusto/employees/employments/client.rb', line 403

def request_client
  @request_client
end

Instance Method Details

#create_rehire(employee_id:, request:, request_options: nil) ⇒ Object

api.employees.employments.create_rehire(employee_id: “employee_id”, request: { effective_date: “2023-06-30”, file_new_hire_report: true, work_location_uuid: “b6ae9d93-d4b8-4119-8c96-dba595dd8c30” })



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

def create_rehire(employee_id:, request:, request_options: nil)
  Async do
    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 || {}), **(request_options&.additional_body_parameters || {}) }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/rehire"
end
    Gusto::Rehire.from_json(json_object: response.body)
  end
end

#create_termination(employee_id:, effective_date:, run_termination_payroll: nil, request_options: nil) ⇒ Object

)



484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
# File 'lib/fern_gusto/employees/employments/client.rb', line 484

def create_termination(employee_id:, effective_date:, run_termination_payroll: nil, request_options: nil)
  Async do
    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 || {}), effective_date: effective_date, run_termination_payroll: run_termination_payroll }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/terminations"
end
    Gusto::Terminations::Termination.from_json(json_object: response.body)
  end
end

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

api.employees.employments.delete_rehire(employee_id: “employee_id”)



732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
# File 'lib/fern_gusto/employees/employments/client.rb', line 732

def delete_rehire(employee_id:, request_options: nil)
  Async do
    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
  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}/rehire"
end
  end
end

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

api.employees.employments.delete_termination(employee_id: “employee_id”)



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

def delete_termination(employee_id:, request_options: nil)
  Async do
    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
  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}/terminations"
end
  end
end

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

api.employees.employments.get_history(employee_id: “employee_id”)



769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
# File 'lib/fern_gusto/employees/employments/client.rb', line 769

def get_history(employee_id:, request_options: nil)
  Async do
    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}/employment_history"
end
    parsed_json = JSON.parse(response.body)
    parsed_json&.map do | item |
      item = item.to_json
      Gusto::Employees::Employments::EmploymentsGetHistoryResponseItem.from_json(json_object: item)
    end
  end
end

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

api.employees.employments.get_rehire_info(employee_id: “employee_id”)



607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
# File 'lib/fern_gusto/employees/employments/client.rb', line 607

def get_rehire_info(employee_id:, request_options: nil)
  Async do
    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}/rehire"
end
    Gusto::Rehire.from_json(json_object: response.body)
  end
end

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

api.employees.employments.get_terminations(employee_id: “employee_id”)



430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
# File 'lib/fern_gusto/employees/employments/client.rb', line 430

def get_terminations(employee_id:, request_options: nil)
  Async do
    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}/terminations"
end
    parsed_json = JSON.parse(response.body)
    parsed_json&.map do | item |
      item = item.to_json
      Gusto::Terminations::Termination.from_json(json_object: item)
    end
  end
end

#update_rehire(employee_id:, version:, effective_date:, file_new_hire_report:, work_location_uuid:, employment_status: nil, two_percent_shareholder: nil, request_options: nil) ⇒ Object

api.employees.employments.update_rehire(employee_id: “employee_id”)



696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
# File 'lib/fern_gusto/employees/employments/client.rb', line 696

def update_rehire(employee_id:, version:, effective_date:, file_new_hire_report:, work_location_uuid:, employment_status: nil, two_percent_shareholder: nil, request_options: nil)
  Async do
    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 || {}), version: version, effective_date: effective_date, file_new_hire_report: file_new_hire_report, work_location_uuid: work_location_uuid, employment_status: employment_status, two_percent_shareholder: two_percent_shareholder }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/rehire"
end
    Gusto::Rehire.from_json(json_object: response.body)
  end
end

#update_termination(employee_id:, version:, effective_date:, run_termination_payroll: nil, request_options: nil) ⇒ Object

)



571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
# File 'lib/fern_gusto/employees/employments/client.rb', line 571

def update_termination(employee_id:, version:, effective_date:, run_termination_payroll: nil, request_options: nil)
  Async do
    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 || {}), version: version, effective_date: effective_date, run_termination_payroll: run_termination_payroll }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/terminations/#{employee_id}"
end
    Gusto::Terminations::Termination.from_json(json_object: response.body)
  end
end