Class: Spree::Api::V2::Storefront::PaypalOrdersController

Inherits:
BaseController
  • Object
show all
Includes:
OrderConcern
Defined in:
lib/spree_api_v2/spree/api/v2/storefront/paypal_orders_controller.rb

Instance Method Summary collapse

Instance Method Details

#captureObject

PUT /api/v2/storefront/paypal_orders/:id/capture



29
30
31
32
33
34
# File 'lib/spree_api_v2/spree/api/v2/storefront/paypal_orders_controller.rb', line 29

def capture
  paypal_order = spree_current_order.paypal_checkout_orders.find_by!(paypal_id: params[:id])
  paypal_order.capture!

  render_serialized_payload { serialize_resource(paypal_order) }
end

#createObject

POST /api/v2/storefront/paypal_orders



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/spree_api_v2/spree/api/v2/storefront/paypal_orders_controller.rb', line 11

def create
  order_presenter = SpreePaypalCheckout::OrderPresenter.new(spree_current_order)

  paypal_response = paypal_client.orders.create_order(order_presenter.to_json)

  paypal_order = spree_current_order.paypal_checkout_orders.create!(
    paypal_id: paypal_response.data.id,
    data: paypal_response.data.as_json,
    amount: spree_current_order.total,
    payment_method: current_store.paypal_checkout_gateway
  )

  render_serialized_payload { serialize_resource(paypal_order) }
rescue PaypalServerSdk::ErrorException => e
  render_error_payload(e.message)
end