Class: Gusto::ContractorsClient

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

Parameters:



44
45
46
47
48
49
50
51
# File 'lib/fern_gusto/contractors/client.rb', line 44

def initialize(request_client:)
  @request_client = request_client
  @payment_method = Gusto::Contractors::PaymentMethodClient.new(request_client: request_client)
  @forms = Gusto::Contractors::FormsClient.new(request_client: request_client)
  @documents = Gusto::Contractors::DocumentsClient.new(request_client: request_client)
  @payments = Gusto::Contractors::PaymentsClient.new(request_client: request_client)
  @payment_groups = Gusto::Contractors::PaymentGroupsClient.new(request_client: request_client)
end

Instance Attribute Details

#documentsGusto::Contractors::DocumentsClient (readonly)



35
36
37
# File 'lib/fern_gusto/contractors/client.rb', line 35

def documents
  @documents
end

#formsGusto::Contractors::FormsClient (readonly)



33
34
35
# File 'lib/fern_gusto/contractors/client.rb', line 33

def forms
  @forms
end

#payment_groupsGusto::Contractors::PaymentGroupsClient (readonly)



39
40
41
# File 'lib/fern_gusto/contractors/client.rb', line 39

def payment_groups
  @payment_groups
end

#payment_methodGusto::Contractors::PaymentMethodClient (readonly)



31
32
33
# File 'lib/fern_gusto/contractors/client.rb', line 31

def payment_method
  @payment_method
end

#paymentsGusto::Contractors::PaymentsClient (readonly)



37
38
39
# File 'lib/fern_gusto/contractors/client.rb', line 37

def payments
  @payments
end

#request_clientGusto::RequestClient (readonly)



29
30
31
# File 'lib/fern_gusto/contractors/client.rb', line 29

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



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/fern_gusto/contractors/client.rb', line 123

def create(company_id:, request:, 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 || {}), **(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

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

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



270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
# File 'lib/fern_gusto/contractors/client.rb', line 270

def delete(contractor_id:, request_options: nil)
  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

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

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



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/fern_gusto/contractors/client.rb', line 156

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

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

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



446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
# File 'lib/fern_gusto/contractors/client.rb', line 446

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

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

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



360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
# File 'lib/fern_gusto/contractors/client.rb', line 360

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

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

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



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/fern_gusto/contractors/client.rb', line 70

def list(company_id:, page: nil, per: nil, search_term: 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, "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

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



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
# File 'lib/fern_gusto/contractors/client.rb', line 237

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

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

)



496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
# File 'lib/fern_gusto/contractors/client.rb', line 496

def update_address(contractor_uuid:, version:, street1: nil, street2: nil, city: nil, state: nil, zip: nil, 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 || {}), 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

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

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



412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
# File 'lib/fern_gusto/contractors/client.rb', line 412

def update_onboarding_status(contractor_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
  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