mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-11-29 10:24:20 +01:00
38 lines
1.0 KiB
Ruby
38 lines
1.0 KiB
Ruby
class API::StatisticsController < API::ApiController
|
|
before_action :authenticate_user!
|
|
|
|
def index
|
|
authorize :statistic, :index?
|
|
@statistics = StatisticIndex.all
|
|
end
|
|
|
|
%w(account event machine project subscription training user).each do |path|
|
|
class_eval %{
|
|
def #{path}
|
|
authorize :statistic, :#{path}?
|
|
query = MultiJson.load(request.body.read)
|
|
results = Stats::#{path.classify}.search(query, request.query_parameters.symbolize_keys).response
|
|
render json: results
|
|
end
|
|
|
|
def export_#{path}
|
|
authorize :statistic, :#{path}?
|
|
query = MultiJson.load(request.body.read)
|
|
results = Stats::#{path.classify}.search(query, request.query_parameters.symbolize_keys).response
|
|
respond_to do |format|
|
|
format.html
|
|
format.xls
|
|
end
|
|
end
|
|
}
|
|
end
|
|
|
|
def scroll
|
|
authorize :statistic, :scroll?
|
|
|
|
results = Elasticsearch::Model.client.scroll scroll: params[:scroll], scroll_id: params[:scrollId]
|
|
render json: results
|
|
end
|
|
|
|
end
|