class Belvo::Resource

Represents a consumable REST resource from Belvo API

Attributes

endpoint[R]

Resource API endpoint @return [String] the API endpoint

Public Class Methods

new(session) click to toggle source

@param session [APISession] current Belvo API session

# File lib/belvo/resources.rb, line 15
def initialize(session)
  @session = session
end

Public Instance Methods

clean(body:) click to toggle source

Remove nil values from a request body @param body [Hash] request body @return [Hash] body without nil values

# File lib/belvo/resources.rb, line 22
def clean(body:)
  body.delete_if { |_key, value| value.nil? }
end
delete(id:) click to toggle source

Delete existing resource @param id [String] Resource UUID @return [Boolean] true if resource is successfully deleted else false

# File lib/belvo/resources.rb, line 47
def delete(id:)
  @session.delete(@endpoint, id)
end
detail(id:) click to toggle source

Show specific resource details @param id [String] Resource UUID @return [Hash] @raise [RequestError] If response code is different than 2XX

# File lib/belvo/resources.rb, line 40
def detail(id:)
  @session.detail(@endpoint, id)
end
list(params: nil) click to toggle source

List all results @param params [Hash] Extra parameters sent as query strings. @return [Array] @raise [RequestError] If response code is different than 2XX

# File lib/belvo/resources.rb, line 30
def list(params: nil)
  results = []
  @session.list(@endpoint, params: params) { |item| results.push item }
  results
end
resume(session_id:, token:, link: nil) click to toggle source

Resume data extraction session. Use this method after you have received a

HTTP 428 response.

@param session_id [String] Session UUID included in the 428 response @param link [String, nil] Link UUID @raise [RequestError] If response code is different than 2XX

# File lib/belvo/resources.rb, line 56
def resume(session_id:, token:, link: nil)
  data = { session: session_id, token: token, link: link }
  @session.patch(@endpoint, data)
end