Method: Caprese::Query#query_params

Defined in:
lib/caprese/controller/concerns/query.rb

#query_paramsHash

The params that affect the query and subsequent response

Examples:

INCLUDE ASSOCIATED RESOURCES

`GET /api/v1/products?include=merchant`

INCLUDE NESTED ASSOCIATED RESOURCES

`GET /api/v1/products?include=merchant.currency`

FIELDSETS

`GET /api/v1/products?include=merchant&fields[product]=title,description&fields[merchant]=id,name`

SORT

`GET /api/v1/products?sort=updated_at`

SORT DESCENDING

`GET /api/v1/products?sort=-updated_at`

PAGINATION

`GET /api/v1/products?page[number]=1&page[size]=5`

LIMIT AND OFFSET

`GET /api/v1/products?limit=1&offset=1`

LIMIT AND OFFSET (GET LAST)

`GET /api/v1/products?limit=1&offset=-1`

FILTERING

`GET /api/v1/products?filter[venue_id]=10`

Returns:

  • (Hash)

    the params that modify our query



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/caprese/controller/concerns/query.rb', line 62

def query_params
  if @query_params.blank?
    @query_params = params.except(:action, :controller)

    # Sort query by column, ascending or descending
    @query_params[:sort] = @query_params[:sort].split(',') if @query_params[:sort]

    # Convert fields params into arrays for each resource
    @query_params[:fields].each do |resource, fields|
      @query_params[:fields][resource] = fields.split(',')
    end if @query_params[:fields]
  end

  @query_params
end