Class: Gusto::AsyncTimeOffPoliciesClient

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::AsyncTimeOffPoliciesClient

Parameters:



441
442
443
# File 'lib/fern_gusto/time_off_policies/client.rb', line 441

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientGusto::AsyncRequestClient (readonly)



436
437
438
# File 'lib/fern_gusto/time_off_policies/client.rb', line 436

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”)



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

def add_employees(time_off_policy_uuid:, employees: 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 || {}), 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
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

)



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

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)
  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 || {}), 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
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

)



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/time_off_policies/client.rb', line 688

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)
  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 || {}), 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
end

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

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



838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
# File 'lib/fern_gusto/time_off_policies/client.rb', line 838

def deactivate(time_off_policy_uuid:, 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
  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
end

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

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



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

def get(time_off_policy_uuid:, 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/time_off_policies/#{time_off_policy_uuid}"
end
    Gusto::TimeOffPolicy.from_json(json_object: response.body)
  end
end

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

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



622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
# File 'lib/fern_gusto/time_off_policies/client.rb', line 622

def list(company_uuid:, 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/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
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”)



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

def remove_employees(time_off_policy_uuid:, employees: 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 || {}), 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
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

)



587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
# File 'lib/fern_gusto/time_off_policies/client.rb', line 587

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)
  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 || {}), 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
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”)



803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
# File 'lib/fern_gusto/time_off_policies/client.rb', line 803

def update_balance(time_off_policy_uuid:, employees: 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 || {}), 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
end