Sha256: 1ba57f0b9b3b8bf705771b0178b87b75b17de4baa12cde885cb12a8ec46e6e70

Contents?: true

Size: 1.19 KB

Versions: 10

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module SolidusStripe
  class PaymentRequestController < Spree::BaseController
    include Spree::Core::ControllerHelpers::Order

    def shipping_rates
      rates = SolidusStripe::ShippingRatesService.new(
        current_order,
        spree_current_user,
        params[:shipping_address]
      ).call

      if rates.any?
        render json: { success: true, shipping_rates: rates }
      else
        render json: { success: false, error: 'No shipping method available for that address' }, status: 500
      end
    end

    def update_order
      current_order.restart_checkout_flow

      address = SolidusStripe::AddressFromParamsService.new(
        params[:shipping_address],
        spree_current_user
      ).call

      if address.valid?
        SolidusStripe::PrepareOrderForPaymentService.new(address, self).call

        if current_order.payment?
          render json: { success: true }
        else
          render json: { success: false, error: 'Order not ready for payment. Try manual checkout.' }, status: 500
        end
      else
        render json: { success: false, error: address.errors.full_messages.to_sentence }, status: 500
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
solidus_stripe-4.2.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-4.1.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-3.2.1 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-4.0.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-3.2.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-3.1.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-3.0.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-2.1.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-2.0.0 app/controllers/solidus_stripe/payment_request_controller.rb
solidus_stripe-1.1.0 app/controllers/solidus_stripe/payment_request_controller.rb