Class: GustoEmbedded::RecoveryCases
- Inherits:
-
Object
- Object
- GustoEmbedded::RecoveryCases
- Extended by:
- T::Sig
- Defined in:
- lib/gusto_embedded/recoverycases.rb
Instance Method Summary collapse
- #get(company_uuid, x_gusto_api_version = nil) ⇒ Object
-
#initialize(sdk_config) ⇒ RecoveryCases
constructor
A new instance of RecoveryCases.
- #redebit(recovery_case_uuid, x_gusto_api_version = nil) ⇒ Object
Constructor Details
#initialize(sdk_config) ⇒ RecoveryCases
Returns a new instance of RecoveryCases.
17 18 19 |
# File 'lib/gusto_embedded/recoverycases.rb', line 17 def initialize(sdk_config) @sdk_configuration = sdk_config end |
Instance Method Details
#get(company_uuid, x_gusto_api_version = nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/gusto_embedded/recoverycases.rb', line 23 def get(company_uuid, x_gusto_api_version = nil) # get - Get all recovery cases for a company # Fetch all recovery cases for a company. # # scope: `recovery_cases:read` request = ::GustoEmbedded::Operations::GetRecoveryCasesRequest.new( company_uuid: company_uuid, x_gusto_api_version: x_gusto_api_version ) url, params = @sdk_configuration.get_server_details base_url = Utils.template_url(url, params) url = Utils.generate_url( ::GustoEmbedded::Operations::GetRecoveryCasesRequest, base_url, '/v1/companies/{company_uuid}/recovery_cases', request ) headers = Utils.get_headers(request) headers['Accept'] = 'application/json' headers['user-agent'] = @sdk_configuration.user_agent r = @sdk_configuration.client.get(url) do |req| req.headers = headers security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil Utils.configure_request_security(req, security) if !security.nil? end content_type = r.headers.fetch('Content-Type', 'application/octet-stream') res = ::GustoEmbedded::Operations::GetRecoveryCasesResponse.new( status_code: r.status, content_type: content_type, raw_response: r ) if r.status == 200 if Utils.match_content_type(content_type, 'application/json') out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), T::Array[::GustoEmbedded::Shared::RecoveryCase]) res.recovery_case_list = out end elsif r.status == 404 end res end |
#redebit(recovery_case_uuid, x_gusto_api_version = nil) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/gusto_embedded/recoverycases.rb', line 69 def redebit(recovery_case_uuid, x_gusto_api_version = nil) # redebit - Initiate a redebit for a recovery case # After resolving the underlying bank error, initiate a redebit for an open recovery case. This submission is asynchronous and a successful request responds with a 202 HTTP status. # # It may take up to four business days for the ACH debit to process; in the meantime, the status of the recovery case will be in the `initiated_redebit` state. When funds are successfully redebited, the recovery case is transitioned to the `recovered` state. # # If the company has exceeded maximum redebit attempts, or if the recovery case is not in a redebitable state, the response will be 422 Unprocessable Entity. # # scope: `recovery_cases:write` request = ::GustoEmbedded::Operations::RedebitRecoveryCaseRequest.new( recovery_case_uuid: recovery_case_uuid, x_gusto_api_version: x_gusto_api_version ) url, params = @sdk_configuration.get_server_details base_url = Utils.template_url(url, params) url = Utils.generate_url( ::GustoEmbedded::Operations::RedebitRecoveryCaseRequest, base_url, '/v1/recovery_cases/{recovery_case_uuid}/redebit', request ) headers = Utils.get_headers(request) headers['Accept'] = 'application/json' headers['user-agent'] = @sdk_configuration.user_agent r = @sdk_configuration.client.put(url) do |req| req.headers = headers security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil Utils.configure_request_security(req, security) if !security.nil? end content_type = r.headers.fetch('Content-Type', 'application/octet-stream') res = ::GustoEmbedded::Operations::RedebitRecoveryCaseResponse.new( status_code: r.status, content_type: content_type, raw_response: r ) if r.status == 202 elsif r.status == 404 elsif r.status == 422 if Utils.match_content_type(content_type, 'application/json') out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::GustoEmbedded::Shared::UnprocessableEntityErrorObject) res.unprocessable_entity_error_object = out end end res end |