From 950e64aef1e64b152e2e11e7cb063a65ab856d2d Mon Sep 17 00:00:00 2001 From: Sushovan Samanta Date: Fri, 17 May 2024 15:54:02 +0530 Subject: [PATCH 1/5] Handle import validation edge case --- .../csv2sql/import_validator/import_validator.ex | 11 ++++++++--- apps/dashboard/lib/dashboard_web/live/main_live.ex | 3 ++- .../dashboard/lib/dashboard_web/live/start_live.ex | 14 ++++++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/apps/csv2sql/lib/csv2sql/import_validator/import_validator.ex b/apps/csv2sql/lib/csv2sql/import_validator/import_validator.ex index 1a3f7e9..95688c4 100644 --- a/apps/csv2sql/lib/csv2sql/import_validator/import_validator.ex +++ b/apps/csv2sql/lib/csv2sql/import_validator/import_validator.ex @@ -40,12 +40,17 @@ defmodule Csv2sql.ImportValidator.ImportValidator do defp validate_csv(file, row_count) do IO.puts("Checking File: #{file.name}") - db_count = Database.get_db_row_count_if_exists(file.path) + db_row_count = Database.get_db_row_count_if_exists(file.path) + + inserted_db_row_count = + if Helpers.get_config(:drop_existing_tables), + do: db_row_count, + else: db_row_count - file.existing_db_row_count IO.puts("Count in csv: #{row_count}") - IO.puts("Count in database: #{db_count}") + IO.puts("Count in database: #{inserted_db_row_count}") - if row_count == (db_count - file.existing_db_row_count) do + if row_count == inserted_db_row_count do (IO.ANSI.green() <> "Correct !" <> IO.ANSI.reset()) |> IO.puts() File.rename( diff --git a/apps/dashboard/lib/dashboard_web/live/main_live.ex b/apps/dashboard/lib/dashboard_web/live/main_live.ex index 0fae194..a282473 100644 --- a/apps/dashboard/lib/dashboard_web/live/main_live.ex +++ b/apps/dashboard/lib/dashboard_web/live/main_live.ex @@ -59,7 +59,8 @@ defmodule DashboardWeb.Live.MainLive do {:noreply, socket} - socket_state.status == :working or is_nil(socket_state.validation_status) -> + socket_state.status == :working or + (socket_state.status == :finished and is_nil(socket_state.validation_status)) -> {:noreply, socket} true -> diff --git a/apps/dashboard/lib/dashboard_web/live/start_live.ex b/apps/dashboard/lib/dashboard_web/live/start_live.ex index d3f6462..6bb6d5d 100644 --- a/apps/dashboard/lib/dashboard_web/live/start_live.ex +++ b/apps/dashboard/lib/dashboard_web/live/start_live.ex @@ -86,11 +86,11 @@ defmodule DashboardWeb.Live.StartLive do