Class: Dbviewer::TableQueryParams

Inherits:
Object
  • Object
show all
Defined in:
lib/dbviewer/table_query_params.rb

Overview

TableQueryParams encapsulates parameters for table querying operations

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page: 1, order_by: nil, direction: "ASC", per_page: nil, column_filters: nil, max_records: 1000) ⇒ TableQueryParams

Initialize query parameters with defaults

Parameters:

  • page (Integer) (defaults to: 1)

    Page number (1-based)

  • order_by (String, nil) (defaults to: nil)

    Column to sort by

  • direction (String) (defaults to: "ASC")

    Sort direction (‘ASC’ or ‘DESC’)

  • per_page (Integer, nil) (defaults to: nil)

    Number of records per page

  • column_filters (Hash, nil) (defaults to: nil)

    Hash of column filters

  • max_records (Integer) (defaults to: 1000)

    Maximum number of records to fetch



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dbviewer/table_query_params.rb', line 13

def initialize(
  page: 1,
  order_by: nil,
  direction: "ASC",
  per_page: nil,
  column_filters: nil,
  max_records: 1000
)
  @page = [ 1, page.to_i ].max
  @order_by = order_by
  @direction = normalize_direction(direction)
  @per_page = normalize_per_page(per_page || 25, max_records)
  @column_filters = column_filters || {}
  @max_records = max_records
end

Instance Attribute Details

#column_filtersObject (readonly)

Returns the value of attribute column_filters.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def column_filters
  @column_filters
end

#directionObject (readonly)

Returns the value of attribute direction.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def direction
  @direction
end

#max_recordsObject (readonly)

Returns the value of attribute max_records.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def max_records
  @max_records
end

#order_byObject (readonly)

Returns the value of attribute order_by.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def order_by
  @order_by
end

#pageObject (readonly)

Returns the value of attribute page.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def page
  @page
end

#per_pageObject (readonly)

Returns the value of attribute per_page.



4
5
6
# File 'lib/dbviewer/table_query_params.rb', line 4

def per_page
  @per_page
end