Class: Tasker::PageSort::PageSortParamsBuilder

Inherits:
Object
  • Object
show all
Defined in:
app/controllers/tasker/page_sort.rb

Overview

Service class to build page sort parameters Reduces complexity by organizing parameter processing logic

Class Method Summary collapse

Class Method Details

.build(params, model_name, default_sort) ⇒ Hash

Build page sort parameters from request params

Parameters:

  • params (Hash)

    Request parameters

  • model_name (String/Symbol)

    Model name for validation

  • default_sort (Symbol)

    Default sort column

Returns:

  • (Hash)

    Page sort parameters



25
26
27
28
29
30
31
32
33
# File 'app/controllers/tasker/page_sort.rb', line 25

def build(params, model_name, default_sort)
  valid_sorts = extract_valid_sorts(model_name)

  {
    limit: extract_limit(params),
    offset: extract_offset(params),
    order: build_order_hash(params, valid_sorts, default_sort)
  }
end