codeRIT/hackathon_manager

View on GitHub
app/controllers/manage/data_exports_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Manage::DataExportsController < Manage::ApplicationController
  before_action :require_director

  before_action :set_data_export, only: [:destroy]

  respond_to :html, :json

  # GET /manage/data_exports
  def index
    @data_exports = DataExport.all.order(created_at: :desc)
    @params = {}
    if params[:export_type]
      @params = params.require(:data_export).permit(:export_type).reject { |_, v| v.blank? }
      @data_exports = @data_exports.where(@params)
    end
    respond_with(:manage, @data_exports)
  end

  # GET /manage/data_exports/new
  def new
    export_type = params[:export_type]
    @data_export = DataExport.new(export_type: export_type)
    respond_with(:manage, @data_export)
  end

  # POST /manage/data_exports
  def create
    @data_export = DataExport.new(data_export_params)

    if @data_export.save
      @data_export.reload.enqueue!
      respond_to do |format|
        format.html { redirect_to manage_data_exports_path, notice: "Data export was successfully created." }
        format.json { render json: @data_export }
      end
    else
      response_view_or_errors :new, @data_export
    end
  end

  # DELETE /manage/data_exports/1
  def destroy
    @data_export.destroy
    respond_to do |format|
      format.html { redirect_to manage_data_exports_path, notice: "Data export was successfully destroyed." }
      format.json { render json: @data_export }
    end
  end

  private

  # Use callbacks to share common setup or constraints between actions.
  def set_data_export
    @data_export = DataExport.find(params[:id])
  end

  # Only allow a trusted parameter "white list" through.
  def data_export_params
    params.require(:data_export).permit(:export_type)
  end
end