Sha256: 907c379b7df90cc6b4a6e8027478f93cf7c653f8205a627bcf6dd0a6db65e8d6

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module Calagator

module DuplicateChecking
  module ControllerActions
    # GET /#{model_class}/duplicates
    def duplicates
      @type = params[:type]
      @grouped_venues = @grouped_events = model_class.find_duplicates_by_type(@type)
    rescue ArgumentError => e
      @grouped_venues = @grouped_events = {}
      flash[:failure] = e.to_s
    end

    # POST /#{model_class}/squash_multiple_duplicates
    def squash_many_duplicates
      master = model_class.find_by_id(params[:master_id])
      duplicate_ids = params.keys.grep(/^duplicate_id_\d+$/){|t| params[t].to_i}
      duplicates = model_class.where(id: duplicate_ids)

      squasher = model_class.squash(master, duplicates)
      if squasher.success
        flash[:success] = squasher.success
      else
        flash[:failure] = squasher.failure
      end
      redirect_to action: "duplicates", type: params[:type]
    end

    private

    def model_class
      # Derive model class from controller name
      "Calagator::#{controller_name.singularize.titleize}".constantize
    end
  end
end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
calagator-1.0.0.rc2 lib/calagator/duplicate_checking/controller_actions.rb
calagator-1.0.0.rc1 lib/calagator/duplicate_checking/controller_actions.rb
calagator-0.0.1.pre1 lib/calagator/duplicate_checking/controller_actions.rb