24 行
943 B
Ruby
24 行
943 B
Ruby
class CountsTablesController < ApplicationController
|
|
def definition
|
|
resolve_locale!
|
|
definition = CountsResourceDefinition.new(params[:resource])
|
|
render json: { fields: definition.metadata,
|
|
output_fields: definition.output_fields,
|
|
filter_fields: definition.filter_metadata,
|
|
axes: { latest: definition.axes(false), history: definition.axes(true) },
|
|
grains: CountsAxes::GRAINS, defaults: CountsDefaults.metadata(params[:resource]) }
|
|
rescue ArgumentError
|
|
head :bad_request
|
|
end
|
|
|
|
def index
|
|
resolve_locale!
|
|
render json: CountsTableQuery.new(request.query_parameters).call
|
|
rescue CountsTableQuery::TooManyColumns
|
|
render json: { error: 'too_many_columns', max_columns: CountsTableQuery::MAX_COLUMNS },
|
|
status: :unprocessable_entity
|
|
rescue ArgumentError, TypeError, KeyError, JSON::ParserError
|
|
head :bad_request
|
|
end
|
|
end
|