Class: Gusto::CompaniesClient

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

Parameters:



77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/fern_gusto/companies/client.rb', line 77

def initialize(request_client:)
  @request_client = request_client
  @attachments = Gusto::Companies::AttachmentsClient.new(request_client: request_client)
  @federal_tax_details = Gusto::Companies::FederalTaxDetailsClient.new(request_client: request_client)
  @industry_selection = Gusto::Companies::IndustrySelectionClient.new(request_client: request_client)
  @signatories = Gusto::Companies::SignatoriesClient.new(request_client: request_client)
  @locations = Gusto::Companies::LocationsClient.new(request_client: request_client)
  @bank_accounts = Gusto::Companies::BankAccountsClient.new(request_client: request_client)
  @external_payrolls = Gusto::Companies::ExternalPayrollsClient.new(request_client: request_client)
  @payment_configs = Gusto::Companies::PaymentConfigsClient.new(request_client: request_client)
  @pay_schedules = Gusto::Companies::PaySchedulesClient.new(request_client: request_client)
  @employees = Gusto::Companies::EmployeesClient.new(request_client: request_client)
  @departments = Gusto::Companies::DepartmentsClient.new(request_client: request_client)
  @forms = Gusto::Companies::FormsClient.new(request_client: request_client)
  @benefits = Gusto::Companies::BenefitsClient.new(request_client: request_client)
  @tax_requirements = Gusto::Companies::TaxRequirementsClient.new(request_client: request_client)
end

Instance Attribute Details

#attachmentsGusto::Companies::AttachmentsClient (readonly)



46
47
48
# File 'lib/fern_gusto/companies/client.rb', line 46

def attachments
  @attachments
end

#bank_accountsGusto::Companies::BankAccountsClient (readonly)



56
57
58
# File 'lib/fern_gusto/companies/client.rb', line 56

def bank_accounts
  @bank_accounts
end

#benefitsGusto::Companies::BenefitsClient (readonly)



70
71
72
# File 'lib/fern_gusto/companies/client.rb', line 70

def benefits
  @benefits
end

#departmentsGusto::Companies::DepartmentsClient (readonly)



66
67
68
# File 'lib/fern_gusto/companies/client.rb', line 66

def departments
  @departments
end

#employeesGusto::Companies::EmployeesClient (readonly)



64
65
66
# File 'lib/fern_gusto/companies/client.rb', line 64

def employees
  @employees
end

#external_payrollsGusto::Companies::ExternalPayrollsClient (readonly)



58
59
60
# File 'lib/fern_gusto/companies/client.rb', line 58

def external_payrolls
  @external_payrolls
end

#federal_tax_detailsGusto::Companies::FederalTaxDetailsClient (readonly)



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

def federal_tax_details
  @federal_tax_details
end

#formsGusto::Companies::FormsClient (readonly)



68
69
70
# File 'lib/fern_gusto/companies/client.rb', line 68

def forms
  @forms
end

#industry_selectionGusto::Companies::IndustrySelectionClient (readonly)



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

def industry_selection
  @industry_selection
end

#locationsGusto::Companies::LocationsClient (readonly)



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

def locations
  @locations
end

#pay_schedulesGusto::Companies::PaySchedulesClient (readonly)



62
63
64
# File 'lib/fern_gusto/companies/client.rb', line 62

def pay_schedules
  @pay_schedules
end

#payment_configsGusto::Companies::PaymentConfigsClient (readonly)



60
61
62
# File 'lib/fern_gusto/companies/client.rb', line 60

def payment_configs
  @payment_configs
end

#request_clientGusto::RequestClient (readonly)



44
45
46
# File 'lib/fern_gusto/companies/client.rb', line 44

def request_client
  @request_client
end

#signatoriesGusto::Companies::SignatoriesClient (readonly)



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

def signatories
  @signatories
end

#tax_requirementsGusto::Companies::TaxRequirementsClient (readonly)



72
73
74
# File 'lib/fern_gusto/companies/client.rb', line 72

def tax_requirements
  @tax_requirements
end

Instance Method Details

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

)



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

def accept_terms(company_uuid:, email:, ip_address:, external_user_id:, 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 || {}), 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

#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 })



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/fern_gusto/companies/client.rb', line 130

def create(user:, company:, 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 || {}), 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

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

)



420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
# File 'lib/fern_gusto/companies/client.rb', line 420

def create_admin(company_id:, first_name:, last_name:, email:, 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 || {}), 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

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

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



502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
# File 'lib/fern_gusto/companies/client.rb', line 502

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

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

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



167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/fern_gusto/companies/client.rb', line 167

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

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

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



372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
# File 'lib/fern_gusto/companies/client.rb', line 372

def get_all_admins(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}/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

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

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



541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
# File 'lib/fern_gusto/companies/client.rb', line 541

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

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

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



455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
# File 'lib/fern_gusto/companies/client.rb', line 455

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

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

)



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/fern_gusto/companies/client.rb', line 255

def migrate_to_embedded_payroll(company_uuid:, email:, ip_address:, external_user_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
  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

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

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



336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# File 'lib/fern_gusto/companies/client.rb', line 336

def retrieve_terms(company_uuid:, email:, 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 || {}), 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

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

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



206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# File 'lib/fern_gusto/companies/client.rb', line 206

def update(company_id:, contractor_only:, 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 || {}), 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