Class: ManageIQ::API::Common::PaginatedResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/manageiq/api/common/paginated_response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_query:, request:, limit: nil, offset: nil) ⇒ PaginatedResponse

Returns a new instance of PaginatedResponse.



7
8
9
10
11
12
# File 'lib/manageiq/api/common/paginated_response.rb', line 7

def initialize(base_query:, request:, limit: nil, offset: nil)
  @base_query = base_query
  @request    = request
  @limit      = (limit || 100).to_i.clamp(1, 1000)
  @offset     = (offset || 0).to_i.clamp(0, Float::INFINITY)
end

Instance Attribute Details

#limitObject (readonly)

Returns the value of attribute limit.



5
6
7
# File 'lib/manageiq/api/common/paginated_response.rb', line 5

def limit
  @limit
end

#offsetObject (readonly)

Returns the value of attribute offset.



5
6
7
# File 'lib/manageiq/api/common/paginated_response.rb', line 5

def offset
  @offset
end

Instance Method Details

#recordsObject



14
15
16
# File 'lib/manageiq/api/common/paginated_response.rb', line 14

def records
  @records ||= @base_query.order(:id).limit(limit).offset(offset)
end

#responseObject



18
19
20
21
22
23
24
# File 'lib/manageiq/api/common/paginated_response.rb', line 18

def response
  {
    "meta"  => ,
    "links" => links_hash,
    "data"  => records
  }
end