Class: Spree::Api::CheckoutsController

Inherits:
BaseController
  • Object
show all
Includes:
Core::ControllerHelpers::Auth, Core::ControllerHelpers::Order
Defined in:
app/controllers/spree/api/checkouts_controller.rb

Instance Attribute Summary

Attributes inherited from BaseController

#current_api_user

Instance Method Summary collapse

Methods inherited from BaseController

#map_nested_attributes_keys, #set_jsonp_format

Methods included from ControllerSetup

included

Instance Method Details

#createObject



12
13
14
15
# File 'app/controllers/spree/api/checkouts_controller.rb', line 12

def create
  @order = Order.build_from_api(current_api_user, nested_params)
  respond_with(@order, :default_template => 'spree/api/orders/show', :status => 201)
end

#nextObject



33
34
35
36
37
38
# File 'app/controllers/spree/api/checkouts_controller.rb', line 33

def next
  @order.next!
  respond_with(@order, :default_template => 'spree/api/orders/show', :status => 200)
  rescue StateMachine::InvalidTransition
    respond_with(@order, :default_template => 'spree/api/orders/could_not_transition', :status => 422)
end

#updateObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/controllers/spree/api/checkouts_controller.rb', line 17

def update
  user_id = object_params.delete(:user_id)
  if @order.update_attributes(object_params)
    # TODO: Replace with better code when we switch to strong_parameters
    # Also remove above user_id stripping
    if current_api_user.has_spree_role?("admin") && user_id.present?
      @order.associate_user!(Spree.user_class.find(user_id))
    end
    return if after_update_attributes
    state_callback(:after) if @order.next
    respond_with(@order, :default_template => 'spree/api/orders/show')
  else
    invalid_resource!(@order)
  end
end