scottwillson/racing_on_rails

View on GitHub
app/controllers/admin/races_collections_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Admin
  class RacesCollectionsController < Admin::AdminController
    before_action :assign_event
    before_action :require_administrator_or_promoter

    def create
      @event.add_races_from_previous_year
      respond_to do |format|
        format.js { render :show }
      end
    end

    def edit
      @races_collection = RacesCollection.new(@event)
      respond_to do |format|
        format.js
      end
    end

    def show
      @races_collection = RacesCollection.new(@event)
      assign_previous
      respond_to do |format|
        format.js
      end
    end

    def update
      @races_collection = RacesCollection.new(@event)
      @races_collection.update(races_collection_params)
      @event.races.reload
      assign_previous
      respond_to do |format|
        format.js { render :show }
      end
    end

    private

    def assign_event
      @event = Event.includes(races: :category).find(params[:event_id])
    end

    def assign_previous
      @previous = nil

      @previous = @event.previous_year if @event.races.empty?
    end

    def races_collection_params
      params.require(:races_collection).permit(:text)
    end
  end
end