# frozen_string_literal: true module Admin class SurveysController < Admin::BaseController load_and_authorize_resource :conference, find_by: :short_title load_and_authorize_resource def index @surveys = @conference.surveys + Survey.where(surveyable: @conference.program.events) end def new @survey = Survey.new(survey_params) @url = admin_conference_surveys_path(@conference.short_title) end def create @survey = Survey.new(survey_params) if @survey.save redirect_to new_admin_conference_survey_survey_question_path(@conference.short_title, @survey), notice: 'Successfully created survey' else redirect_to new_admin_conference_survey_path(@conference.short_title, survey: { surveyable_type: survey_params['surveyable_type'], surveyable_id: survey_params['surveyable_id'] }), error: 'Could not create survey.' + @survey.errors.full_messages.to_sentence end end def edit @url = admin_conference_survey_path(@conference.short_title, @survey) end def update if @survey.update(survey_params) redirect_to admin_conference_surveys_path(@conference.short_title) else @url = admin_conference_survey_path(@conference.short_title, @survey) render action: :edit end end def destroy @survey.destroy redirect_to admin_conference_surveys_path(@conference.short_title) end private def survey_params params.require(:survey).permit(:title, :description, :target, :start_date, :end_date, :surveyable_type, :surveyable_id) end end end