# frozen_string_literal: true class StatCreatedPlansByTemplateController < ApplicationController def index check_authorized! data = StatCreatedPlan.monthly_range(index_filter).order(date: :desc) template_filter = params[:templates] if params[:format] == "csv" p params case template_filter when 'any' data_csvified = StatCreatedPlan.to_csv(data, details: { any_template: true }) when 'org' data_csvified = StatCreatedPlan.to_csv(data, details: { org_template: true }) end send_data(data_csvified, filename: "created_plan_any_template.csv") else case template_filter when 'any' render(json: data.as_json(only: [:date, :count], methods: :any_template)) when 'org' render(json: data.as_json(only: [:date, :count], methods: :org_template)) end end end private def index_filter { org: current_user.org, start_date: params[:start_date], end_date: params[:end_date] } end def check_authorized! unless current_user.present? && current_user.can_org_admin? raise Pundit::NotAuthorizedError end end end