class Decidim::Meetings::Admin::MinutesController

This controller allows an admin to manage minutes from a Meeting

def create

def create
  enforce_permission_to :create, :minutes, meeting: current_meeting
  @form = form(MinutesForm).from_params(params)
  CreateMinutes.call(@form, current_meeting) do
    on(:ok) do
      flash[:notice] = I18n.t("minutes.create.success", scope: "decidim.meetings.admin")
      redirect_to meetings_path
    end
    on(:invalid) do
      flash.now[:alert] = I18n.t("minutes.create.invalid", scope: "decidim.meetings.admin")
      render action: "new"
    end
  end
end

def current_meeting

def current_meeting
  @current_meeting ||= Meeting.where(component: current_component).find(params[:meeting_id])
end

def edit

def edit
  enforce_permission_to :update, :minutes, minutes: minutes, meeting: current_meeting
  @form = form(MinutesForm).from_model(minutes)
end

def minutes

def minutes
  @minutes ||= Minutes.where(meeting: current_meeting).find(params[:id])
end

def new

def new
  enforce_permission_to :create, :minutes, meeting: current_meeting
  @form = form(MinutesForm).instance
end

def update

def update
  enforce_permission_to :update, :minutes, minutes: minutes, meeting: current_meeting
  @form = form(MinutesForm).from_params(params)
  UpdateMinutes.call(@form, current_meeting, minutes) do
    on(:ok) do
      flash[:notice] = I18n.t("minutes.update.success", scope: "decidim.meetings.admin")
      redirect_to meetings_path
    end
    on(:invalid) do
      flash.now[:alert] = I18n.t("minutes.update.invalid", scope: "decidim.meetings.admin")
      render action: "edit"
    end
  end
end