Browse Source

feat: remove url query parsing, put validation before values added to db

pull/861/head
natdeanlewissoftwire 3 years ago
parent
commit
9f2ee7f2d0
  1. 23
      app/controllers/locations_controller.rb

23
app/controllers/locations_controller.rb

@ -57,7 +57,11 @@ class LocationsController < ApplicationController
render_not_found and return unless @location && @scheme render_not_found and return unless @location && @scheme
page = params[:location][:page] page = params[:location][:page]
if @location.update(location_params) if page == "edit-local-authority" && !valid_location_admin_district?(location_params)
error_message = I18n.t("validations.location_admin_district")
@location.errors.add :location_admin_district, error_message
render :edit_local_authority, status: :unprocessable_entity
elsif @location.update(location_params)
case page case page
when "edit" when "edit"
if @location.location_admin_district.nil? if @location.location_admin_district.nil?
@ -70,21 +74,12 @@ class LocationsController < ApplicationController
when "edit-name" when "edit-name"
redirect_to(scheme_check_answers_path(@scheme, anchor: "locations")) redirect_to(scheme_check_answers_path(@scheme, anchor: "locations"))
when "edit-local-authority" when "edit-local-authority"
if valid_location_admin_district?(location_params) if params[:add_another_location] == "Yes"
@uri_query = URI.parse(request.referer).query redirect_to(new_location_path(@location.scheme))
@query_hash = @uri_query ? CGI.parse(@uri_query) : { "add_another_location": [] }
@add_another_location = @query_hash["add_another_location"].try(:first)
if @add_another_location == "Yes"
redirect_to(new_location_path(@location.scheme))
else
redirect_to(scheme_check_answers_path(@scheme, anchor: "locations"))
end
else else
error_message = I18n.t("validations.location_admin_district") redirect_to(scheme_check_answers_path(@scheme, anchor: "locations"))
@location.errors.add :location_admin_district, error_message end
render :edit_local_authority, status: :unprocessable_entity
end end
end
else else
render :edit, status: :unprocessable_entity render :edit, status: :unprocessable_entity
end end

Loading…
Cancel
Save