module Admin class OpsController < Admin::BaseController def index @open_incidents = Ops::Incident.open.recent.limit(50) @resolved_incidents = Ops::Incident.where(status: "resolved").since(30.days.ago).recent.limit(30) @summary = ops_summary end def acknowledge incident = Ops::Incident.find(params[:id]) incident.acknowledge! redirect_to admin_ops_path, notice: "Incidente preso in carico" end def resolve incident = Ops::Incident.find(params[:id]) incident.resolve! redirect_to admin_ops_path, notice: "Incidente risolto" end def mute incident = Ops::Incident.find(params[:id]) incident.mute!(duration: 24.hours) redirect_to admin_ops_path, notice: "Notifiche sospese per 24 ore" end private def ops_summary { open_critical: Ops::Incident.critical_open.count, open_warning: Ops::Incident.open.where(severity: "warning").count, open_total: Ops::Incident.open.count } end end end