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