From 395da5fe5b7cbe840b24ba7120f339ce3a24bd50 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Thu, 15 Dec 2022 17:16:18 +0000 Subject: [PATCH] shim in sales validator --- app/services/bulk_upload/processor.rb | 14 ++++++++++++-- app/services/bulk_upload/sales/validator.rb | 12 ++++++++++++ spec/services/bulk_upload/processor_spec.rb | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/services/bulk_upload/processor.rb b/app/services/bulk_upload/processor.rb index 5656b5a7a..93d3fd3e7 100644 --- a/app/services/bulk_upload/processor.rb +++ b/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 diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index f2855bc7c..8cf637ec9 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/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 diff --git a/spec/services/bulk_upload/processor_spec.rb b/spec/services/bulk_upload/processor_spec.rb index 1ecdf4bad..f780eb1ad 100644 --- a/spec/services/bulk_upload/processor_spec.rb +++ b/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