diff --git a/app/services/bulk_upload/lettings/log_creator.rb b/app/services/bulk_upload/lettings/log_creator.rb index d278cbe52..9dd4a2f66 100644 --- a/app/services/bulk_upload/lettings/log_creator.rb +++ b/app/services/bulk_upload/lettings/log_creator.rb @@ -23,46 +23,35 @@ class BulkUpload::Lettings::LogCreator private + def csv_parser + @csv_parser ||= BulkUpload::Lettings::CsvParser.new(path:) + end + def row_offset - 5 + csv_parser.row_offset end def col_offset - 1 + csv_parser.col_offset end def row_parsers - @row_parsers ||= body_rows.map do |row| - stripped_row = row[col_offset..] - headers = ("field_1".."field_134").to_a - hash = Hash[headers.zip(stripped_row)] - hash[:bulk_upload] = bulk_upload + return @row_parsers if @row_parsers + + @row_parsers = csv_parser.row_parsers - BulkUpload::Lettings::RowParser.new(hash) + @row_parsers.each do |row_parser| + row_parser.bulk_upload = bulk_upload end + + @row_parsers end def body_rows - rows[row_offset..] + csv_parser.body_rows end def rows - @rows ||= CSV.read(path, row_sep:) - end - - # determine the row seperator from CSV - # Windows will use \r\n - def row_sep - contents = "" - - File.open(path, "r") do |f| - contents = f.read - end - - if contents[-2..] == "\r\n" - "\r\n" - else - "\n" - end + csv_parser.rows end end