Class: Gusto::CompaniesClient
- Inherits:
-
Object
- Object
- Gusto::CompaniesClient
- Defined in:
- lib/fern_gusto/companies/client.rb
Instance Attribute Summary collapse
- #attachments ⇒ Gusto::Companies::AttachmentsClient readonly
- #bank_accounts ⇒ Gusto::Companies::BankAccountsClient readonly
- #benefits ⇒ Gusto::Companies::BenefitsClient readonly
- #departments ⇒ Gusto::Companies::DepartmentsClient readonly
- #employees ⇒ Gusto::Companies::EmployeesClient readonly
- #external_payrolls ⇒ Gusto::Companies::ExternalPayrollsClient readonly
- #federal_tax_details ⇒ Gusto::Companies::FederalTaxDetailsClient readonly
- #forms ⇒ Gusto::Companies::FormsClient readonly
- #industry_selection ⇒ Gusto::Companies::IndustrySelectionClient readonly
- #locations ⇒ Gusto::Companies::LocationsClient readonly
- #pay_schedules ⇒ Gusto::Companies::PaySchedulesClient readonly
- #payment_configs ⇒ Gusto::Companies::PaymentConfigsClient readonly
- #request_client ⇒ Gusto::RequestClient readonly
- #signatories ⇒ Gusto::Companies::SignatoriesClient readonly
- #tax_requirements ⇒ Gusto::Companies::TaxRequirementsClient readonly
Instance Method Summary collapse
-
#accept_terms(company_uuid:, email:, ip_address:, external_user_id:, request_options: nil) ⇒ Object
).
-
#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 }).
-
#create_admin(company_id:, first_name:, last_name:, email:, request_options: nil) ⇒ Object
).
-
#finish_onboarding(company_uuid:, request_options: nil) ⇒ Object
api.companies.finish_onboarding(company_uuid: “company_uuid”).
-
#get(company_id:, request_options: nil) ⇒ Object
api.companies.get(company_id: “company_id”).
-
#get_all_admins(company_id:, page: nil, per: nil, request_options: nil) ⇒ Object
api.companies.get_all_admins(company_id: “company_id”).
-
#get_custom_fields(company_id:, page: nil, per: nil, request_options: nil) ⇒ Object
api.companies.get_custom_fields(company_id: “company_id”).
-
#get_onboarding_status(company_uuid:, request_options: nil) ⇒ Object
api.companies.get_onboarding_status(company_uuid: “company_uuid”).
- #initialize(request_client:) ⇒ Gusto::CompaniesClient constructor
-
#migrate_to_embedded_payroll(company_uuid:, email:, ip_address:, external_user_id:, request_options: nil) ⇒ Object
).
-
#retrieve_terms(company_uuid:, email:, request_options: nil) ⇒ Object
api.companies.retrieve_terms(company_uuid: “company_uuid”, email: “email”).
-
#update(company_id:, contractor_only:, request_options: nil) ⇒ Object
api.companies.update(company_id: “company_id”, contractor_only: false).
Constructor Details
#initialize(request_client:) ⇒ Gusto::CompaniesClient
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
#attachments ⇒ Gusto::Companies::AttachmentsClient (readonly)
46 47 48 |
# File 'lib/fern_gusto/companies/client.rb', line 46 def @attachments end |
#bank_accounts ⇒ Gusto::Companies::BankAccountsClient (readonly)
56 57 58 |
# File 'lib/fern_gusto/companies/client.rb', line 56 def bank_accounts @bank_accounts end |
#benefits ⇒ Gusto::Companies::BenefitsClient (readonly)
70 71 72 |
# File 'lib/fern_gusto/companies/client.rb', line 70 def benefits @benefits end |
#departments ⇒ Gusto::Companies::DepartmentsClient (readonly)
66 67 68 |
# File 'lib/fern_gusto/companies/client.rb', line 66 def departments @departments end |
#employees ⇒ Gusto::Companies::EmployeesClient (readonly)
64 65 66 |
# File 'lib/fern_gusto/companies/client.rb', line 64 def employees @employees end |
#external_payrolls ⇒ Gusto::Companies::ExternalPayrollsClient (readonly)
58 59 60 |
# File 'lib/fern_gusto/companies/client.rb', line 58 def external_payrolls @external_payrolls end |
#federal_tax_details ⇒ Gusto::Companies::FederalTaxDetailsClient (readonly)
48 49 50 |
# File 'lib/fern_gusto/companies/client.rb', line 48 def federal_tax_details @federal_tax_details end |
#forms ⇒ Gusto::Companies::FormsClient (readonly)
68 69 70 |
# File 'lib/fern_gusto/companies/client.rb', line 68 def forms @forms end |
#industry_selection ⇒ Gusto::Companies::IndustrySelectionClient (readonly)
50 51 52 |
# File 'lib/fern_gusto/companies/client.rb', line 50 def industry_selection @industry_selection end |
#locations ⇒ Gusto::Companies::LocationsClient (readonly)
54 55 56 |
# File 'lib/fern_gusto/companies/client.rb', line 54 def locations @locations end |
#pay_schedules ⇒ Gusto::Companies::PaySchedulesClient (readonly)
62 63 64 |
# File 'lib/fern_gusto/companies/client.rb', line 62 def pay_schedules @pay_schedules end |
#payment_configs ⇒ Gusto::Companies::PaymentConfigsClient (readonly)
60 61 62 |
# File 'lib/fern_gusto/companies/client.rb', line 60 def payment_configs @payment_configs end |
#request_client ⇒ Gusto::RequestClient (readonly)
44 45 46 |
# File 'lib/fern_gusto/companies/client.rb', line 44 def request_client @request_client end |
#signatories ⇒ Gusto::Companies::SignatoriesClient (readonly)
52 53 54 |
# File 'lib/fern_gusto/companies/client.rb', line 52 def signatories @signatories end |
#tax_requirements ⇒ Gusto::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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), email: email, ip_address: ip_address, external_user_id: external_user_id }.compact req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), user: user, company: company }.compact req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), first_name: first_name, last_name: last_name, email: email }.compact req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact req.params = { **(&.additional_query_parameters || {}), "page": page, "per": per }.compact unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact req.params = { **(&.additional_query_parameters || {}), "page": page, "per": per }.compact unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end unless .nil? || &.additional_body_parameters.nil? req.body = { **(&.additional_body_parameters || {}) }.compact end req.url "#{@request_client.get_url(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 (company_uuid:, email:, ip_address:, external_user_id:, request_options: nil) response = @request_client.conn.put do | req | unless &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), email: email, ip_address: ip_address, external_user_id: external_user_id }.compact req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), email: email }.compact req.url "#{@request_client.get_url(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 &.timeout_in_seconds.nil? req..timeout = .timeout_in_seconds end unless &.token.nil? req.headers["Authorization"] = .token end unless &.gusto_api_version.nil? req.headers["X-Gusto-API-Version"] = .gusto_api_version end req.headers = { **(req.headers || {}), **@request_client.get_headers, **(&.additional_headers || {}) }.compact unless .nil? || &.additional_query_parameters.nil? req.params = { **(&.additional_query_parameters || {}) }.compact end req.body = { **(&.additional_body_parameters || {}), contractor_only: contractor_only }.compact req.url "#{@request_client.get_url(request_options: )}/v1/companies/#{company_id}" end Gusto::Companies::Company.from_json(json_object: response.body) end |