Class: Gusto::AsyncCompaniesClient

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ Gusto::AsyncCompaniesClient

Parameters:



597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
# File 'lib/fern_gusto/companies/client.rb', line 597

def initialize(request_client:)
  @request_client = request_client
  @attachments = Gusto::Companies::AsyncAttachmentsClient.new(request_client: request_client)
  @federal_tax_details = Gusto::Companies::AsyncFederalTaxDetailsClient.new(request_client: request_client)
  @industry_selection = Gusto::Companies::AsyncIndustrySelectionClient.new(request_client: request_client)
  @signatories = Gusto::Companies::AsyncSignatoriesClient.new(request_client: request_client)
  @locations = Gusto::Companies::AsyncLocationsClient.new(request_client: request_client)
  @bank_accounts = Gusto::Companies::AsyncBankAccountsClient.new(request_client: request_client)
  @external_payrolls = Gusto::Companies::AsyncExternalPayrollsClient.new(request_client: request_client)
  @payment_configs = Gusto::Companies::AsyncPaymentConfigsClient.new(request_client: request_client)
  @pay_schedules = Gusto::Companies::AsyncPaySchedulesClient.new(request_client: request_client)
  @employees = Gusto::Companies::AsyncEmployeesClient.new(request_client: request_client)
  @departments = Gusto::Companies::AsyncDepartmentsClient.new(request_client: request_client)
  @forms = Gusto::Companies::AsyncFormsClient.new(request_client: request_client)
  @benefits = Gusto::Companies::AsyncBenefitsClient.new(request_client: request_client)
  @tax_requirements = Gusto::Companies::AsyncTaxRequirementsClient.new(request_client: request_client)
end

Instance Attribute Details

#attachmentsGusto::Companies::AttachmentsClient (readonly)



566
567
568
# File 'lib/fern_gusto/companies/client.rb', line 566

def attachments
  @attachments
end

#bank_accountsGusto::Companies::BankAccountsClient (readonly)



576
577
578
# File 'lib/fern_gusto/companies/client.rb', line 576

def bank_accounts
  @bank_accounts
end

#benefitsGusto::Companies::BenefitsClient (readonly)



590
591
592
# File 'lib/fern_gusto/companies/client.rb', line 590

def benefits
  @benefits
end

#departmentsGusto::Companies::DepartmentsClient (readonly)



586
587
588
# File 'lib/fern_gusto/companies/client.rb', line 586

def departments
  @departments
end

#employeesGusto::Companies::EmployeesClient (readonly)



584
585
586
# File 'lib/fern_gusto/companies/client.rb', line 584

def employees
  @employees
end

#external_payrollsGusto::Companies::ExternalPayrollsClient (readonly)



578
579
580
# File 'lib/fern_gusto/companies/client.rb', line 578

def external_payrolls
  @external_payrolls
end

#federal_tax_detailsGusto::Companies::FederalTaxDetailsClient (readonly)



568
569
570
# File 'lib/fern_gusto/companies/client.rb', line 568

def federal_tax_details
  @federal_tax_details
end

#formsGusto::Companies::FormsClient (readonly)



588
589
590
# File 'lib/fern_gusto/companies/client.rb', line 588

def forms
  @forms
end

#industry_selectionGusto::Companies::IndustrySelectionClient (readonly)



570
571
572
# File 'lib/fern_gusto/companies/client.rb', line 570

def industry_selection
  @industry_selection
end

#locationsGusto::Companies::LocationsClient (readonly)



574
575
576
# File 'lib/fern_gusto/companies/client.rb', line 574

def locations
  @locations
end

#pay_schedulesGusto::Companies::PaySchedulesClient (readonly)



582
583
584
# File 'lib/fern_gusto/companies/client.rb', line 582

def pay_schedules
  @pay_schedules
end

#payment_configsGusto::Companies::PaymentConfigsClient (readonly)



580
581
582
# File 'lib/fern_gusto/companies/client.rb', line 580

def payment_configs
  @payment_configs
end

#request_clientGusto::AsyncRequestClient (readonly)



564
565
566
# File 'lib/fern_gusto/companies/client.rb', line 564

def request_client
  @request_client
end

#signatoriesGusto::Companies::SignatoriesClient (readonly)



572
573
574
# File 'lib/fern_gusto/companies/client.rb', line 572

def signatories
  @signatories
end

#tax_requirementsGusto::Companies::TaxRequirementsClient (readonly)



592
593
594
# File 'lib/fern_gusto/companies/client.rb', line 592

def tax_requirements
  @tax_requirements
end

Instance Method Details

#accept_terms(company_uuid:, email:, ip_address:, external_user_id:, request_options: nil) ⇒ Object

)



828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
# File 'lib/fern_gusto/companies/client.rb', line 828

def accept_terms(company_uuid:, email:, ip_address:, external_user_id:, 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 || {}), email: email, ip_address: ip_address, external_user_id: external_user_id }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/partner_managed_companies/#{company_uuid}/accept_terms_of_service"
end
    Gusto::Companies::CompaniesAcceptTermsResponse.from_json(json_object: response.body)
  end
end

#create(user:, company:, request_options: nil) ⇒ Object

api.companies.create(user: { first_name: “Frank”, last_name: “Ocean”, email: “frank@example.com”, phone: “2345558899” }, company: { name: “Frank’s Ocean, LLC”, trade_name: “Frank’s Ocean”, ein: “123456789”, contractor_only: false })



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/companies/client.rb', line 650

def create(user:, company:, 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 || {}), user: user, company: company }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/partner_managed_companies"
end
    Gusto::Companies::CompaniesCreateResponse.from_json(json_object: response.body)
  end
end

#create_admin(company_id:, first_name:, last_name:, email:, request_options: nil) ⇒ Object

)



954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
# File 'lib/fern_gusto/companies/client.rb', line 954

def create_admin(company_id:, first_name:, last_name:, email:, 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 || {}), first_name: first_name, last_name: last_name, email: email }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/admins"
end
    Gusto::Admins::Admin.from_json(json_object: response.body)
  end
end

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

api.companies.finish_onboarding(company_uuid: “company_uuid”)



1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
# File 'lib/fern_gusto/companies/client.rb', line 1040

def finish_onboarding(company_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/companies/#{company_uuid}/finish_onboarding"
end
    Gusto::Companies::CompanyOnboardingStatus.from_json(json_object: response.body)
  end
end

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

api.companies.get(company_id: “company_id”)



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

def get(company_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/companies/#{company_id}"
end
    Gusto::Companies::Company.from_json(json_object: response.body)
  end
end

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

api.companies.get_all_admins(company_id: “company_id”)



904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
# File 'lib/fern_gusto/companies/client.rb', line 904

def get_all_admins(company_id:, page: nil, per: 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 }.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}/admins"
end
    parsed_json = JSON.parse(response.body)
    parsed_json&.map do | item |
      item = item.to_json
      Gusto::Admins::Admin.from_json(json_object: item)
    end
  end
end

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

api.companies.get_custom_fields(company_id: “company_id”)



1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
# File 'lib/fern_gusto/companies/client.rb', line 1081

def get_custom_fields(company_id:, page: nil, per: 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 }.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}/custom_fields"
end
    Gusto::Companies::CompaniesGetCustomFieldsResponse.from_json(json_object: response.body)
  end
end

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

api.companies.get_onboarding_status(company_uuid: “company_uuid”)



991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
# File 'lib/fern_gusto/companies/client.rb', line 991

def get_onboarding_status(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}/onboarding_status"
end
    Gusto::Companies::CompanyOnboardingStatus.from_json(json_object: response.body)
  end
end

#migrate_to_embedded_payroll(company_uuid:, email:, ip_address:, external_user_id:, request_options: nil) ⇒ Object

)



781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
# File 'lib/fern_gusto/companies/client.rb', line 781

def migrate_to_embedded_payroll(company_uuid:, email:, ip_address:, external_user_id:, 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 || {}), email: email, ip_address: ip_address, external_user_id: external_user_id }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/partner_managed_companies/#{company_uuid}/migrate"
end
    Gusto::Companies::CompaniesMigrateToEmbeddedPayrollResponse.from_json(json_object: response.body)
  end
end

#retrieve_terms(company_uuid:, email:, request_options: nil) ⇒ Object

api.companies.retrieve_terms(company_uuid: “company_uuid”, email: “email”)



866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
# File 'lib/fern_gusto/companies/client.rb', line 866

def retrieve_terms(company_uuid:, email:, 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 || {}), email: email }.compact
  req.url "#{@request_client.get_url(request_options: request_options)}/v1/partner_managed_companies/#{company_uuid}/retrieve_terms_of_service"
end
    Gusto::Companies::CompaniesRetrieveTermsResponse.from_json(json_object: response.body)
  end
end

#update(company_id:, contractor_only:, request_options: nil) ⇒ Object

api.companies.update(company_id: “company_id”, contractor_only: false)



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

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