2013-02-27 22:39:42 -05:00
|
|
|
require_dependency 'report'
|
|
|
|
|
|
|
|
class Admin::ReportsController < Admin::AdminController
|
|
|
|
|
|
|
|
def show
|
|
|
|
report_type = params[:type]
|
|
|
|
|
2015-05-06 21:00:51 -04:00
|
|
|
raise Discourse::NotFound unless report_type =~ /^[a-z0-9\_]+$/
|
2013-02-27 22:39:42 -05:00
|
|
|
|
2017-03-29 21:46:39 -04:00
|
|
|
start_date = params[:start_date].present? ? Time.parse(params[:start_date]) : 30.days.ago
|
|
|
|
end_date = params[:end_date].present? ? Time.parse(params[:end_date]) : start_date + 30.days
|
2017-04-13 05:10:55 -04:00
|
|
|
|
2016-02-02 21:29:51 -05:00
|
|
|
if params.has_key?(:category_id) && params[:category_id].to_i > 0
|
|
|
|
category_id = params[:category_id].to_i
|
|
|
|
else
|
|
|
|
category_id = nil
|
2015-06-24 09:19:39 -04:00
|
|
|
end
|
|
|
|
|
2016-02-02 21:29:51 -05:00
|
|
|
if params.has_key?(:group_id) && params[:group_id].to_i > 0
|
|
|
|
group_id = params[:group_id].to_i
|
|
|
|
else
|
|
|
|
group_id = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
report = Report.find(report_type, start_date: start_date, end_date: end_date, category_id: category_id, group_id: group_id)
|
2015-06-24 09:19:39 -04:00
|
|
|
|
2015-05-06 21:00:51 -04:00
|
|
|
raise Discourse::NotFound if report.blank?
|
2013-02-27 22:39:42 -05:00
|
|
|
|
|
|
|
render_json_dump(report: report)
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|