diff --git a/back-office/app/controllers/items_controller.rb b/back-office/app/controllers/items_controller.rb index 7599fe9..abf4ff2 100644 --- a/back-office/app/controllers/items_controller.rb +++ b/back-office/app/controllers/items_controller.rb @@ -46,33 +46,39 @@ class ItemsController < ApplicationController @csv_content = params[:csv_content] @error_message = "" + @output = [] if params[:csv_content] == "" @error_message = "Format of CSV is wrong (CSV content is empty)" else - csv_parsed = CSV.parse(params[:csv_content]) - csv_file = ItemsHelper::create_csv(csv_parsed) - - @output = "" - begin - ENV["INPUT"] = csv_file.path + csv_parsed = CSV.parse(params[:csv_content]) + rescue CSV::MalformedCSVError => er + @error_message = "Format of CSV is wrong (#{er.message})" + end - case params[:task] - when 'validate_items' - @output = ItemsHelper::execute_command("rake ribica:validate_items") - #ItemsHelper::execute_command("rake ribica:reindex") - when 'import_items' - @output = ItemsHelper::execute_command("rake ribica:import_items") - #ItemsHelper::execute_command("rake ribica:reindex") - when 'update_prices' - @output = ItemsHelper::execute_command("rake ribica:update_prices") - #ItemsHelper::execute_command("rake ribica:reindex") - else - @error_message = "There is no such task" + unless csv_parsed.nil? + csv_file = ItemsHelper::create_csv(csv_parsed) + + begin + ENV["INPUT"] = csv_file.path + + case params[:task] + when 'validate_items' + @output = ItemsHelper::execute_command("rake ribica:validate_items") + #ItemsHelper::execute_command("rake ribica:reindex") + when 'import_items' + @output = ItemsHelper::execute_command("rake ribica:import_items") + #ItemsHelper::execute_command("rake ribica:reindex") + when 'update_prices' + @output = ItemsHelper::execute_command("rake ribica:update_prices") + #ItemsHelper::execute_command("rake ribica:reindex") + else + @error_message = "There is no such task" + end + ensure + csv_file.unlink end - ensure - csv_file.unlink end @output = @output.join("
")