BathHacked/energy-sparks

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

Summary

Maintainability
A
0 mins
Test Coverage
A
93%
module Admin
  class EquivalenceTypesController < AdminController
    include LocaleHelper
    load_and_authorize_resource

    before_action :set_template_variables, except: [:index, :show]

    def index
      @equivalence_types = @equivalence_types.order(created_at: :desc)
    end

    def new
      @content = EquivalenceTypeContentVersion.new
    end

    def create
      @content = @equivalence_type.content_versions.new(content_params[:content])
      if @equivalence_type.update_with_content!(equivalence_type_params, @content)
        redirect_to admin_equivalence_types_path(@equivalence_type), notice: 'Equivalence created'
      else
        render :new
      end
    end

    def edit
      @content = @equivalence_type.current_content
    end

    def update
      @content = @equivalence_type.content_versions.new(content_params[:content])
      if @equivalence_type.update_with_content!(equivalence_type_params, @content)
        redirect_to admin_equivalence_types_path, notice: 'Equivalence type updated'
      else
        render :edit
      end
    end

    def destroy
      @equivalence_type.destroy
      redirect_to admin_equivalence_types_path, notice: 'Equivalence type was successfully deleted.'
    end

  private

    def equivalence_type_params
      params.require(:equivalence_type).permit(:meter_type, :time_period, :image_name)
    end

    def content_params
      translated_params = t_params(EquivalenceTypeContentVersion.mobility_attributes)
      params.require(:equivalence_type).permit(
        content: translated_params
      )
    end

    def set_template_variables
      @template_variables = EnergyConversions.front_end_conversion_list.deep_transform_keys do |key|
        :"#{key.to_s.gsub('£', 'gbp')}"
      end
    end
  end
end