Class: Spree::Api::V2::Storefront::LineItemsController
- Inherits:
-
ResourceController
- Object
- ResourceController
- Spree::Api::V2::Storefront::LineItemsController
- Defined in:
- app/controllers/spree/api/v2/storefront/line_items_controller.rb
Instance Method Summary collapse
- #allowed_sort_attributes ⇒ Object
- #collection ⇒ Object
- #collection_serializer ⇒ Object
- #line_items_by_order_tokens ⇒ Object
- #resource_serializer ⇒ Object
- #show ⇒ Object
-
#try_mark_as_completed ⇒ Object
PATCH /api/v2/storefront/line_items/1/try_mark_as_completed?order_token=:order_token&position=:position Attempts to mark a line item completion step as completed based on provided position.
Instance Method Details
#allowed_sort_attributes ⇒ Object
43 44 45 46 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 43 def allowed_sort_attributes super << :to_date super << :from_date end |
#collection ⇒ Object
6 7 8 9 10 11 12 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 6 def collection if spree_current_user.nil? line_items_by_order_tokens else spree_current_user.line_items.filter_by_event(params[:event]) end end |
#collection_serializer ⇒ Object
52 53 54 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 52 def collection_serializer Spree::V2::Storefront::LineItemSerializer end |
#line_items_by_order_tokens ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 56 def line_items_by_order_tokens order_tokens = params[:order_tokens] event = params[:event] return Spree::LineItem.none if order_tokens.blank? Spree::LineItem.joins(:order) .where(spree_orders: { token: order_tokens, state: 'complete', user_id: nil }) .includes(:guests, :saved_guests) .filter_by_event(event) .page(params[:page]) .per(params[:per_page]) end |
#resource_serializer ⇒ Object
48 49 50 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 48 def resource_serializer Spree::V2::Storefront::LineItemSerializer end |
#show ⇒ Object
14 15 16 17 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 14 def show line_item = Spree::LineItem.find(params[:id]) render_serialized_payload { serialize_resource(line_item) } end |
#try_mark_as_completed ⇒ Object
PATCH /api/v2/storefront/line_items/1/try_mark_as_completed?order_token=:order_token&position=:position Attempts to mark a line item completion step as completed based on provided position.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'app/controllers/spree/api/v2/storefront/line_items_controller.rb', line 21 def try_mark_as_completed scope = if spree_current_user.nil? Spree::LineItem.joins(:order).where(spree_orders: { token: params[:order_token] }) else spree_current_user.line_items end line_item = scope.find(params[:id]) step_position = params.fetch(:position, 1).to_i result = SpreeCmCommissioner::CompletionSteps::MarkLineItemAsCompleted.call( line_item: line_item, position: step_position ) if result.success? render_serialized_payload { serialize_resource(result.value) } else render_error_payload(result.error) end end |