app/controllers/admin/reports/amr_data_feed_import_logs_controller.rb
module Admin
module Reports
class AmrDataFeedImportLogsController < AdminController
include Pagy::Backend
before_action :set_log_counts
SUMMARY_PERIOD_IN_DAYS = 30
def warnings
render_for(:with_warnings)
end
def errors
render_for(:errored)
end
def successes
render_for(:successful)
end
def index
@amr_data_feed_configs = AmrDataFeedConfig.all.order(:description)
end
private
def render_for(page)
@amr_data_feed_import_logs = AmrDataFeedImportLog.send(page).order(import_time: :desc)
@amr_data_feed_import_logs = @amr_data_feed_import_logs.where("file_name ILIKE '%#{params[:search]}%'") if params[:search]
@amr_data_feed_import_logs = @amr_data_feed_import_logs.where(amr_data_feed_config_id: params[:config][:config_id]) if params[:config] && params[:config][:config_id].present?
@pagy, @logs = pagy(@amr_data_feed_import_logs)
end
def set_log_counts
@successes_count = AmrDataFeedImportLog.successful.since(SUMMARY_PERIOD_IN_DAYS.days.ago).count
@warnings_count = AmrDataFeedImportLog.with_warnings.since(SUMMARY_PERIOD_IN_DAYS.days.ago).count
@errors_count = AmrDataFeedImportLog.errored.since(SUMMARY_PERIOD_IN_DAYS.days.ago).count
end
end
end
end