From a8531ed6522cfd4271bad73a95b08838eb8c6ce4 Mon Sep 17 00:00:00 2001 From: cintamani Date: Thu, 10 Oct 2019 13:35:55 +0100 Subject: [PATCH] Forms Refactoring - Service Provider form (#508) From: https://eaflood.atlassian.net/browse/RUBY-693 Implement delegate and strong parameters strategy in Service Provider form --- .../service_provided_forms_controller.rb | 6 ++++++ .../service_provided_form.rb | 16 +--------------- spec/factories/forms/service_provided_form.rb | 13 ++++++++++--- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/controllers/waste_carriers_engine/service_provided_forms_controller.rb b/app/controllers/waste_carriers_engine/service_provided_forms_controller.rb index 3dcc01b72..9281152c3 100644 --- a/app/controllers/waste_carriers_engine/service_provided_forms_controller.rb +++ b/app/controllers/waste_carriers_engine/service_provided_forms_controller.rb @@ -9,5 +9,11 @@ def new def create super(ServiceProvidedForm, "service_provided_form") end + + private + + def transient_registration_attributes + params.require(:service_provided_form).permit(:is_main_service) + end end end diff --git a/app/forms/waste_carriers_engine/service_provided_form.rb b/app/forms/waste_carriers_engine/service_provided_form.rb index cebf27265..8d091a17d 100644 --- a/app/forms/waste_carriers_engine/service_provided_form.rb +++ b/app/forms/waste_carriers_engine/service_provided_form.rb @@ -2,22 +2,8 @@ module WasteCarriersEngine class ServiceProvidedForm < BaseForm - attr_accessor :is_main_service + delegate :is_main_service, to: :transient_registration validates :is_main_service, "waste_carriers_engine/yes_no": true - - def initialize(transient_registration) - super - - self.is_main_service = transient_registration.is_main_service - end - - def submit(params) - # Assign the params for validation and pass them to the BaseForm method for updating - self.is_main_service = params[:is_main_service] - attributes = { is_main_service: is_main_service } - - super(attributes) - end end end diff --git a/spec/factories/forms/service_provided_form.rb b/spec/factories/forms/service_provided_form.rb index 441a56d8a..ef040c945 100644 --- a/spec/factories/forms/service_provided_form.rb +++ b/spec/factories/forms/service_provided_form.rb @@ -3,9 +3,16 @@ FactoryBot.define do factory :service_provided_form, class: WasteCarriersEngine::ServiceProvidedForm do trait :has_required_data do - is_main_service { "yes" } - - initialize_with { new(create(:transient_registration, :has_required_data, workflow_state: "service_provided_form")) } + initialize_with do + new( + create( + :transient_registration, + :has_required_data, + workflow_state: "service_provided_form", + is_main_service: "yes" + ) + ) + end end end end