Sha256: e843642dfd73384af52ef0541b4861cca1552480022513d86cead81e04b9ba1f

Contents?: true

Size: 1.57 KB

Versions: 36

Compression:

Stored size: 1.57 KB

Contents

module Workarea
  module Storefront
    module Checkout
      class AddressesController < CheckoutsController
        after_action :validate_shipping_options, only: :update_addresses

        # GET /checkout/addresses
        def addresses
          @step ||= Storefront::Checkout::AddressesViewModel.new(
            addresses_step,
            view_model_options
          )
        end

        # PATCH /checkout/addresses
        def update_addresses
          addresses_step.update(params)

          if addresses_step.complete?
            completed_addresses_step
          else
            incomplete_addresses_step
          end
        end

        private

        def addresses_step
          @addresses_step ||= Workarea::Checkout::Steps::Addresses.new(current_checkout)
        end

        def completed_addresses_step
          flash[:success] = t('workarea.storefront.flash_messages.addresses_saved')

          if current_order.requires_shipping?
            redirect_to checkout_shipping_path
          else
            Workarea::Checkout::Steps::Shipping.new(current_checkout).update
            redirect_to checkout_payment_path
          end
        end

        def incomplete_addresses_step
          addresses
          render :addresses
        end

        def validate_shipping_options
          available_options = Workarea::Storefront::CartViewModel.new(current_order).shipping_options

          if available_options.empty?
            flash[:error] = t('workarea.storefront.flash_messages.no_available_shipping_options')
          end
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
workarea-storefront-3.5.12 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.33 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.11 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.10 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.32 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.9 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.31 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.8 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.30 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.7 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.29 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.6 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.28 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.5 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.27 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.4 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.26 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.3 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.4.25 app/controllers/workarea/storefront/checkout/addresses_controller.rb
workarea-storefront-3.5.2 app/controllers/workarea/storefront/checkout/addresses_controller.rb