Skip to content

Commit

Permalink
Change template for checkout controller
Browse files Browse the repository at this point in the history
Remove state machine exception rescue as it is now rescued from Api/BaseController
  • Loading branch information
SamuelMartini authored and DanielePalombo committed Jul 10, 2020
1 parent d54ab89 commit 496e22d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
11 changes: 1 addition & 10 deletions api/app/controllers/spree/api/checkouts_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ def next
authorize! :update, @order, order_token
@order.next!
respond_with(@order, default_template: 'spree/api/orders/show', status: 200)
rescue StateMachines::InvalidTransition => error
logger.error("invalid_transition #{error.event} from #{error.from} for #{error.object.class.name}. Error: #{error.inspect}")
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end

def advance
Expand All @@ -42,9 +39,6 @@ def complete
@order.complete!
respond_with(@order, default_template: 'spree/api/orders/show', status: 200)
end
rescue StateMachines::InvalidTransition => error
logger.error("invalid_transition #{error.event} from #{error.from} for #{error.object.class.name}. Error: #{error.inspect}")
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end

def update
Expand All @@ -57,12 +51,9 @@ def update

return if after_update_attributes

if @order.completed? || @order.next
if @order.completed? || @order.next!
state_callback(:after)
respond_with(@order, default_template: 'spree/api/orders/show')
else
logger.error("failed_to_transition_errors=#{@order.errors.full_messages}")
respond_with(@order, default_template: 'spree/api/orders/could_not_transition', status: 422)
end
else
invalid_resource!(@order)
Expand Down
14 changes: 13 additions & 1 deletion api/spec/requests/spree/api/checkouts_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,6 @@ module Spree
state: 'address',
email: nil
)

put spree.next_api_checkout_path(order), params: { id: order.to_param, order_token: order.guest_token }
expect(response.status).to eq(422)
expect(json_response['error']).to match(/could not be transitioned/)
Expand Down Expand Up @@ -431,6 +430,19 @@ module Spree
expect(json_response['errors']['expected_total']).to include(I18n.t('spree.api.order.expected_total_mismatch'))
end
end

context 'when cannot complete' do
let(:order) { create(:order) }

before { order.update(state: 'cart') }

it 'returns a state machine error' do
subject

expect(json_response['error']).to eq(I18n.t(:could_not_transition, scope: "spree.api", resource: 'order'))
expect(response.status).to eq(422)
end
end
end
end

Expand Down

0 comments on commit 496e22d

Please sign in to comment.