@@ -2,6 +2,9 @@ defmodule Csv2sql.ImportValidator do
22 alias NimbleCSV.RFC4180 , as: CSV
33 alias Csv2sql.Helpers
44
5+ @ doc """
6+ Validates import by comparing row count in csv vs row count in database
7+ """
58 def validate_import ( file_list ) do
69 % { stats: { total , correct , incorrect } , incorrect_files: incorrect_files } =
710 file_list
@@ -11,19 +14,18 @@ defmodule Csv2sql.ImportValidator do
1114 % { stats: { total , correct , incorrect } , incorrect_files: incorrect_files } ->
1215 Helpers . print_msg ( "Checking File: #{ Path . basename ( file ) } " , :yellow )
1316
14- validated_csv_directory =
15- Application . get_env ( :csv2sql , Csv2sql.MainServer ) [ :validated_csv_directory ]
17+ main_server_config = Application . get_env ( :csv2sql , Csv2sql.MainServer )
1618
1719 src =
1820 if Application . get_env ( :csv2sql , Csv2sql.Worker ) [ :set_insert_data ] ,
19- do: Application . get_env ( :csv2sql , Csv2sql.MainServer ) [ :imported_csv_directory ] ,
20- else: Application . get_env ( :csv2sql , Csv2sql.MainServer ) [ :source_csv_directory ]
21+ do: main_server_config [ :imported_csv_directory ] ,
22+ else: main_server_config [ :source_csv_directory ]
2123
2224 result =
2325 if validate_csv ( file , row_count ) do
2426 File . rename (
2527 "#{ src } /#{ file } .csv" ,
26- "#{ validated_csv_directory } /#{ file } .csv"
28+ "#{ main_server_config [ : validated_csv_directory] } /#{ file } .csv"
2729 )
2830
2931 % {
@@ -41,36 +43,13 @@ defmodule Csv2sql.ImportValidator do
4143 end
4244 )
4345
44- """
45-
46- #{ IO.ANSI . underline ( ) } Validation Completed:#{ IO.ANSI . no_underline ( ) }
47-
48- """
49- |> Helpers . print_msg ( :white )
50-
51- white = IO.ANSI . white ( )
52-
53- Helpers . print_msg ( "* Number of files checked: #{ white } #{ total } " )
54- Helpers . print_msg ( "* Number of files with correct count: #{ white } #{ correct } " )
55- Helpers . print_msg ( "* Number of files with incorrect count: #{ white } #{ incorrect } " )
56-
57- if incorrect > 0 do
58- """
59-
60-
61- Files with incorrect count:
62- """
63- |> Helpers . print_msg ( :white )
64-
65- incorrect_files
66- |> Enum . each ( fn file ->
67- Helpers . print_msg ( "* #{ Path . basename ( file ) } " , :red )
68- end )
69- end
70-
46+ show_validation_results ( total , correct , incorrect , incorrect_files )
7147 { incorrect , incorrect_files }
7248 end
7349
50+ @ doc """
51+ Get row count in csv file
52+ """
7453 def get_count_from_csv ( file ) do
7554 file
7655 |> File . stream! ( )
@@ -125,4 +104,33 @@ defmodule Csv2sql.ImportValidator do
125104 - 1
126105 end
127106 end
107+
108+ defp show_validation_results ( total , correct , incorrect , incorrect_files ) do
109+ """
110+
111+ #{ IO.ANSI . underline ( ) } Validation Completed:#{ IO.ANSI . no_underline ( ) }
112+
113+ """
114+ |> Helpers . print_msg ( :white )
115+
116+ white = IO.ANSI . white ( )
117+
118+ Helpers . print_msg ( "* Number of files checked: #{ white } #{ total } " )
119+ Helpers . print_msg ( "* Number of files with correct count: #{ white } #{ correct } " )
120+ Helpers . print_msg ( "* Number of files with incorrect count: #{ white } #{ incorrect } " )
121+
122+ if incorrect > 0 do
123+ """
124+
125+
126+ Files with incorrect count:
127+ """
128+ |> Helpers . print_msg ( :white )
129+
130+ incorrect_files
131+ |> Enum . each ( fn file ->
132+ Helpers . print_msg ( "* #{ Path . basename ( file ) } " , :red )
133+ end )
134+ end
135+ end
128136end
0 commit comments