Browse Source

shim in sales validator

remotes/origin/bulk-upload-errors-integration
Phil Lee 3 years ago
parent
commit
395da5fe5b
  1. 14
      app/services/bulk_upload/processor.rb
  2. 12
      app/services/bulk_upload/sales/validator.rb
  3. 2
      spec/services/bulk_upload/processor_spec.rb

14
app/services/bulk_upload/processor.rb

@ -22,11 +22,21 @@ private
downloader.call
end
# TODO: handle sales
def validator
@validator ||= BulkUpload::Lettings::Validator.new(
@validator ||= validator_class.new(
bulk_upload:,
path: downloader.path,
)
end
def validator_class
case bulk_upload.log_type
when "lettings"
BulkUpload::Lettings::Validator
when "sales"
BulkUpload::Sales::Validator
else
raise "Validator not found for #{bulk_upload.log_type}"
end
end
end

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

@ -1,4 +1,6 @@
class BulkUpload::Sales::Validator
include ActiveModel::Validations
QUESTIONS = {
field_1: "What is the purchaser code?",
field_2: "What is the day of the sale completion date? - DD",
@ -130,4 +132,14 @@ class BulkUpload::Sales::Validator
def self.question_for_field(field)
QUESTIONS[field]
end
attr_reader :bulk_upload, :path
def initialize(bulk_upload:, path:)
@bulk_upload = bulk_upload
@path = path
end
def call
end
end

2
spec/services/bulk_upload/processor_spec.rb

@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe BulkUpload::Processor do
subject(:processor) { described_class.new(bulk_upload:) }
let(:bulk_upload) { create(:bulk_upload) }
let(:bulk_upload) { create(:bulk_upload, :lettings) }
context "when processing a bulk upload with errors" do
describe "#call" do

Loading…
Cancel
Save