class MarketTown::Checkout::DeliveryStep
Handles delivery method and application of delivery promotions.
Dependencies:
- fulfilments#can_fulfil_shipments? - promotions#apply_delivery_promotions - finish#delivery_step
Protected Instance Methods
apply_delivery_promotions(state)
click to toggle source
Tries to apply delivery promotions
# File lib/market_town/checkout/steps/delivery_step.rb, line 43 def apply_delivery_promotions(state) deps.promotions.apply_delivery_promotions(state) rescue MissingDependency add_dependency_missing_warning(state, :cannot_apply_delivery_promotions) end
finish_delivery_step(state)
click to toggle source
Finish delivery step
# File lib/market_town/checkout/steps/delivery_step.rb, line 51 def finish_delivery_step(state) deps.finish.delivery_step(state) end
validate_delivery_address(state)
click to toggle source
@raise [InvalidDeliveryAddressError]
# File lib/market_town/checkout/steps/delivery_step.rb, line 23 def validate_delivery_address(state) Address.validate!(state[:delivery_address]) rescue Address::InvalidError => e raise InvalidDeliveryAddressError.new(e.data) end
validate_shipments(state)
click to toggle source
Tries to validate shipments
@raise [CannotFulfilShipmentsError]
# File lib/market_town/checkout/steps/delivery_step.rb, line 33 def validate_shipments(state) unless deps.fulfilments.can_fulfil_shipments?(state) raise CannotFulfilShipmentsError.new(state[:shipments]) end rescue MissingDependency add_dependency_missing_warning(state, :cannot_validate_shipments) end