class CountsTablesController < ApplicationController def definition resolve_locale! definition = CountsResourceDefinition.new(params[:resource]) render json: { fields: definition.metadata, axes: { latest: definition.axes(false), history: definition.axes(true) }, grains: CountsAxes::GRAINS } 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