Class: Gusto::AsyncContractorsClient

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Gusto::AsyncContractorsClient

Parameters:



534
535
536
537
538
539
540
541
# File 'lib/fern_gusto/contractors/client.rb', line 534

def initialize(request_client:)
  @request_client = request_client
  @payment_method = Gusto::Contractors::AsyncPaymentMethodClient.new(request_client: request_client)
  @forms = Gusto::Contractors::AsyncFormsClient.new(request_client: request_client)
  @documents = Gusto::Contractors::AsyncDocumentsClient.new(request_client: request_client)
  @payments = Gusto::Contractors::AsyncPaymentsClient.new(request_client: request_client)
  @payment_groups = Gusto::Contractors::AsyncPaymentGroupsClient.new(request_client: request_client)
end

Instance Attribute Details

#documentsGusto::Contractors::DocumentsClient (readonly)



525
526
527
# File 'lib/fern_gusto/contractors/client.rb', line 525

def documents
  @documents
end

#formsGusto::Contractors::FormsClient (readonly)



523
524
525
# File 'lib/fern_gusto/contractors/client.rb', line 523

def forms
  @forms
end

#payment_groupsGusto::Contractors::PaymentGroupsClient (readonly)



529
530
531
# File 'lib/fern_gusto/contractors/client.rb', line 529

def payment_groups
  @payment_groups
end

#payment_methodGusto::Contractors::PaymentMethodClient (readonly)



521
522
523
# File 'lib/fern_gusto/contractors/client.rb', line 521

def payment_method
  @payment_method
end

#paymentsGusto::Contractors::PaymentsClient (readonly)



527
528
529
# File 'lib/fern_gusto/contractors/client.rb', line 527

def payments
  @payments
end

#request_clientGusto::AsyncRequestClient (readonly)



519
520
521
# File 'lib/fern_gusto/contractors/client.rb', line 519

def request_client
  @request_client
end

Instance Method Details

#create(company_id:, request:, request_options: nil) ⇒ Object

api.contractors.create(company_id: “company_id”, request: { type: INDIVIDUAL, wage_type: FIXED, start_date: “2020-04-01”, self_onboarding: true, email: “johnson@johnson.com”, first_name: “Johnson”, last_name: “Johnson”, file_new_hire_report: true, work_state: “CA” })



615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
# File 'lib/fern_gusto/contractors/client.rb', line 615

def create(company_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/companies/#{company_id}/contractors"
end
    Gusto::Contractors::Contractor.from_json(json_object: response.body)
  end
end

#delete(contractor_id:, request_options: nil) ⇒ Object

api.contractors.delete(contractor_id: “contractor_id”)



768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
# File 'lib/fern_gusto/contractors/client.rb', line 768

def delete(contractor_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/contractors/#{contractor_id}"
end
  end
end

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

api.contractors.get(contractor_id: “contractor_id”)



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

def get(contractor_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/contractors/#{contractor_id}"
end
    Gusto::Contractors::Contractor.from_json(json_object: response.body)
  end
end

#get_address(contractor_uuid:, request_options: nil) ⇒ Object

api.contractors.get_address(contractor_uuid: “contractor_uuid”)



950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
# File 'lib/fern_gusto/contractors/client.rb', line 950

def get_address(contractor_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/contractors/#{contractor_uuid}/address"
end
    Gusto::ContractorAddressInfo.from_json(json_object: response.body)
  end
end

#get_onboarding_status(contractor_uuid:, request_options: nil) ⇒ Object

api.contractors.get_onboarding_status(contractor_uuid: “contractor_uuid”)



860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
# File 'lib/fern_gusto/contractors/client.rb', line 860

def get_onboarding_status(contractor_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/contractors/#{contractor_uuid}/onboarding_status"
end
    Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
  end
end

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

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



560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
# File 'lib/fern_gusto/contractors/client.rb', line 560

def list(company_id:, page: nil, per: nil, search_term: nil, 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
  req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per, "search_term": search_term }.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}/contractors"
end
    parsed_json = JSON.parse(response.body)
    parsed_json&.map do | item |
      item = item.to_json
      Gusto::Contractors::Contractor.from_json(json_object: item)
    end
  end
end

#update(contractor_id:, version:, type: nil, wage_type: nil, start_date: nil, hourly_rate: nil, self_onboarding: nil, email: nil, first_name: nil, last_name: nil, middle_initial: nil, file_new_hire_report: nil, work_state: nil, ssn: nil, business_name: nil, ein: nil, is_active: nil, request_options: nil) ⇒ Object

api.contractors.update(contractor_id: “contractor_id”)



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/contractors/client.rb', line 733

def update(contractor_id:, version:, type: nil, wage_type: nil, start_date: nil, hourly_rate: nil, self_onboarding: nil, email: nil, first_name: nil, last_name: nil, middle_initial: nil, file_new_hire_report: nil, work_state: nil, ssn: nil, business_name: nil, ein: nil, is_active: 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, type: type, wage_type: wage_type, start_date: start_date, hourly_rate: hourly_rate, self_onboarding: self_onboarding, email: email, first_name: first_name, last_name: last_name, middle_initial: middle_initial, file_new_hire_report: file_new_hire_report, work_state: work_state, ssn: ssn, business_name: business_name, ein: ein, is_active: is_active }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_id}"
end
    Gusto::Contractors::Contractor.from_json(json_object: response.body)
  end
end

#update_address(contractor_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, request_options: nil) ⇒ Object

)



1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
# File 'lib/fern_gusto/contractors/client.rb', line 1002

def update_address(contractor_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: 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, street_1: street1, street_2: street2, city: city, state: state, zip: zip }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/address"
end
    Gusto::ContractorAddressInfo.from_json(json_object: response.body)
  end
end

#update_onboarding_status(contractor_uuid:, request_options: nil) ⇒ Object

api.contractors.update_onboarding_status(contractor_uuid: “contractor_uuid”)



914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
# File 'lib/fern_gusto/contractors/client.rb', line 914

def update_onboarding_status(contractor_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
  req.body = { **(request_options&.additional_body_parameters || {}), "onboarding_status": "onboarding_completed" }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/onboarding_status"
end
    Gusto::Contractor::ContractorOnboardingInfo.from_json(json_object: response.body)
  end
end