Browse Source

row parser now has year in namespacing

pull/1417/head
Phil Lee 3 years ago
parent
commit
7a350af957
  1. 9
      app/components/bulk_upload_error_row_component.rb
  2. 6
      app/components/bulk_upload_error_summary_table_component.rb
  3. 6
      app/mailers/bulk_upload_mailer.rb
  4. 22
      app/models/bulk_upload.rb
  5. 2
      app/services/bulk_upload/lettings/year2022/csv_parser.rb
  6. 2
      app/services/bulk_upload/lettings/year2022/row_parser.rb
  7. 2
      app/services/bulk_upload/sales/validator.rb
  8. 2
      app/services/bulk_upload/sales/year2022/row_parser.rb
  9. 6
      spec/components/bulk_upload_error_summary_table_component_spec.rb
  10. 2
      spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb
  11. 2
      spec/services/bulk_upload/sales/year2022/row_parser_spec.rb

9
app/components/bulk_upload_error_row_component.rb

@ -24,14 +24,7 @@ class BulkUploadErrorRowComponent < ViewComponent::Base
end end
def question_for_field(field) def question_for_field(field)
case bulk_upload.log_type bulk_upload.prefix_namespace::RowParser.question_for_field(field.to_sym)
when "lettings"
BulkUpload::Lettings::RowParser.question_for_field(field.to_sym)
when "sales"
BulkUpload::Sales::RowParser.question_for_field(field.to_sym)
else
"Unknown question"
end
end end
def bulk_upload def bulk_upload

6
app/components/bulk_upload_error_summary_table_component.rb

@ -31,10 +31,6 @@ private
end end
def row_parser_class def row_parser_class
if bulk_upload.lettings? bulk_upload.prefix_namespace::RowParser
BulkUpload::Lettings::RowParser
else
BulkUpload::Sales::RowParser
end
end end
end end

6
app/mailers/bulk_upload_mailer.rb

@ -73,11 +73,7 @@ class BulkUploadMailer < NotifyMailer
start_bulk_upload_sales_logs_url start_bulk_upload_sales_logs_url
end end
row_parser_class = if bulk_upload.lettings? row_parser_class = bulk_upload.prefix_namespace::RowParser
BulkUpload::Lettings::RowParser
else
BulkUpload::Sales::RowParser
end
errors = bulk_upload errors = bulk_upload
.bulk_upload_errors .bulk_upload_errors

22
app/models/bulk_upload.rb

@ -46,6 +46,28 @@ class BulkUpload < ApplicationRecord
needstype == 2 needstype == 2
end end
def prefix_namespace
type_class = case log_type
when "lettings"
"Lettings"
when "sales"
"Sales"
else
raise "unknown log type"
end
year_class = case year
when 2022
"Year2022"
when 2023
"Year2023"
else
raise "unknown year"
end
"BulkUpload::#{type_class}::#{year_class}".constantize
end
private private
def generate_identifier def generate_identifier

2
app/services/bulk_upload/lettings/year2022/csv_parser.rb

@ -25,7 +25,7 @@ class BulkUpload::Lettings::Year2022::CsvParser
headers = ("field_1".."field_134").to_a headers = ("field_1".."field_134").to_a
hash = Hash[headers.zip(stripped_row)] hash = Hash[headers.zip(stripped_row)]
BulkUpload::Lettings::RowParser.new(hash) BulkUpload::Lettings::Year2022::RowParser.new(hash)
end end
end end

2
app/services/bulk_upload/lettings/row_parser.rb → app/services/bulk_upload/lettings/year2022/row_parser.rb

@ -1,4 +1,4 @@
class BulkUpload::Lettings::RowParser class BulkUpload::Lettings::Year2022::RowParser
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes

2
app/services/bulk_upload/sales/validator.rb

@ -61,7 +61,7 @@ private
headers = ("field_1".."field_125").to_a headers = ("field_1".."field_125").to_a
hash = Hash[headers.zip(stripped_row)] hash = Hash[headers.zip(stripped_row)]
BulkUpload::Sales::RowParser.new(hash) BulkUpload::Sales::Year2022::RowParser.new(hash)
end end
end end

2
app/services/bulk_upload/sales/row_parser.rb → app/services/bulk_upload/sales/year2022/row_parser.rb

@ -1,4 +1,4 @@
class BulkUpload::Sales::RowParser class BulkUpload::Sales::Year2022::RowParser
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes include ActiveModel::Attributes

6
spec/components/bulk_upload_error_summary_table_component_spec.rb

@ -52,7 +52,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do
expect(row_1).to eql([ expect(row_1).to eql([
"A", "A",
"1", "1",
BulkUpload::Lettings::RowParser.question_for_field(error_1.field.to_sym), bulk_upload.prefix_namespace::RowParser.question_for_field(error_1.field.to_sym),
error_1.error, error_1.error,
error_1.field, error_1.field,
]) ])
@ -62,7 +62,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do
expect(row_2).to eql([ expect(row_2).to eql([
"B", "B",
"1", "1",
BulkUpload::Lettings::RowParser.question_for_field(error_2.field.to_sym), bulk_upload.prefix_namespace::RowParser.question_for_field(error_2.field.to_sym),
error_2.error, error_2.error,
error_2.field, error_2.field,
]) ])
@ -89,7 +89,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do
expect(row_1).to eql([ expect(row_1).to eql([
"A", "A",
"2", "2",
BulkUpload::Lettings::RowParser.question_for_field(error_1.field.to_sym), bulk_upload.prefix_namespace::RowParser.question_for_field(error_1.field.to_sym),
error_1.error, error_1.error,
error_1.field, error_1.field,
]) ])

2
spec/services/bulk_upload/lettings/row_parser_spec.rb → spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb

@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
RSpec.describe BulkUpload::Lettings::RowParser do RSpec.describe BulkUpload::Lettings::Year2022::RowParser do
subject(:parser) { described_class.new(attributes) } subject(:parser) { described_class.new(attributes) }
let(:now) { Time.zone.today } let(:now) { Time.zone.today }

2
spec/services/bulk_upload/sales/row_parser_spec.rb → spec/services/bulk_upload/sales/year2022/row_parser_spec.rb

@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
RSpec.describe BulkUpload::Sales::RowParser do RSpec.describe BulkUpload::Sales::Year2022::RowParser do
subject(:parser) { described_class.new(attributes) } subject(:parser) { described_class.new(attributes) }
describe "validations" do describe "validations" do
Loading…
Cancel
Save