timothyandrew/blink

View on GitHub
app/controllers/picture_comprehension_exercises_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class PictureComprehensionExercisesController < ApplicationController
  def index
    @picture_comprehension_exercises = current_user.picture_comprehension_exercises.order(created_at: :desc)
  end

  def new
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.new
    @picture_comprehension_exercise.images.new
  end

  def edit
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
  end

  def show
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
  end

  def create
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.new(picture_comprehension_exercise_params)
    if @picture_comprehension_exercise.save_with_images(picture_comprehension_images_params)
      flash[:notice] = "Picture comprehension was created."
      redirect_to picture_comprehension_exercise_path(@picture_comprehension_exercise)
    else
      flash[:alert] = @picture_comprehension_exercise.errors.full_messages.to_sentence
      render :new
    end
  end

  def update
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
    @picture_comprehension_exercise.assign_attributes(picture_comprehension_exercise_params)
    if @picture_comprehension_exercise.save_with_images(picture_comprehension_images_params)
      flash[:notice] = "Picture comprehension was edited"
      redirect_to picture_comprehension_exercise_path(@picture_comprehension_exercise)
    else
      flash[:alert] = @picture_comprehension_exercise.errors.full_messages.to_sentence
      render :edit
    end
  end

  def destroy
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
    @picture_comprehension_exercise.destroy
    flash[:notice] = "Picture comprehension was destroyed!"
    redirect_to picture_comprehension_exercises_path
  end

  def reorder
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
    PictureComprehensionImage.order_sequentially!(@picture_comprehension_exercise.images, params[:image_ids])
    respond_to do |format|
      format.json { render json: {status: :success} }
      format.html { render :index }
    end
  end

  def play
    @picture_comprehension_exercise = current_user.picture_comprehension_exercises.find(params[:id])
    @images = @picture_comprehension_exercise.images.shuffle
  end

  private

  def picture_comprehension_exercise_params
    params.require(:picture_comprehension_exercise).permit(:name)
  end

  def picture_comprehension_images_params
    params.require(:images)
  end
end