class Creditario::PaginatedCollection

Creditario::PaginatedCollection

Representa una colección de recursos paginados, a los cuales se puede acceder mediante el atributo items.

También contiene información relacionada a los recursos relacionados mediante el atributo links.

Así como los cursores de la paginación, encontados en el atributo cursors

Attributes

cursors[R]

Información sobre el siguiente cursor utilizado en la paginación

items[R]

Arreglo de todos los recursos obtenidos de la API

Public Class Methods

new(json_response = {}, item_class) click to toggle source

Recibe el JSON parseado de la llamada ejecutada a la API y lo procesa obteniendo así la colección de items de la clase específica a la que pertenecen, los links y los cursores de paginación.

# File lib/creditario/utils/paginated_collection.rb, line 31
def initialize(json_response = {}, item_class)
  @items = build_items(json_response.dig("data"), item_class)
  @links = json_response.dig("links")
  @cursors = json_response.dig("pagination", "cursors")
end

Private Instance Methods

build_items(array, item_class) click to toggle source
# File lib/creditario/utils/paginated_collection.rb, line 39
def build_items(array, item_class)
  array.map do |item|
    item_class.new(item)
  end
end