Class: Voltaria::Recoveries::Client
- Inherits:
-
Object
- Object
- Voltaria::Recoveries::Client
- Defined in:
- lib/voltaria/recoveries/client.rb
Instance Method Summary collapse
-
#create_recovery(request_options: {}, **params) ⇒ Voltaria::Types::RecoveryResponse
Record a new recovery against one of your loans.
- #initialize(client:) ⇒ void constructor
-
#list_recoveries(request_options: {}, **params) ⇒ Voltaria::Types::PaginatedResponseRecoveryResponse
Retrieve recoveries recorded against your loans.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/voltaria/recoveries/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#create_recovery(request_options: {}, **params) ⇒ Voltaria::Types::RecoveryResponse
Record a new recovery against one of your loans.
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/voltaria/recoveries/client.rb', line 74 def create_recovery(request_options: {}, **params) params = Voltaria::Internal::Types::Utils.normalize_keys(params) request = Voltaria::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v2/recoveries", body: Voltaria::Recoveries::Types::RecoveryCreatePayload.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Voltaria::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Voltaria::Types::RecoveryResponse.load(response.body) else error_class = Voltaria::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list_recoveries(request_options: {}, **params) ⇒ Voltaria::Types::PaginatedResponseRecoveryResponse
Retrieve recoveries recorded against your loans. Supports filtering by client or loan.
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 |
# File 'lib/voltaria/recoveries/client.rb', line 30 def list_recoveries(request_options: {}, **params) params = Voltaria::Internal::Types::Utils.normalize_keys(params) query_param_names = %i[client_id loan_id page page_size order_by q] query_params = {} query_params["client_id"] = params[:client_id] if params.key?(:client_id) query_params["loan_id"] = params[:loan_id] if params.key?(:loan_id) query_params["page"] = params[:page] if params.key?(:page) query_params["page_size"] = params[:page_size] if params.key?(:page_size) query_params["order_by"] = params[:order_by] if params.key?(:order_by) query_params["q"] = params[:q] if params.key?(:q) params.except(*query_param_names) request = Voltaria::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v2/recoveries", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Voltaria::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Voltaria::Types::PaginatedResponseRecoveryResponse.load(response.body) else error_class = Voltaria::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |