From 334eebeab1cb9f8d3e11d372989b4ba35c5bdc0e Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 23 Oct 2018 10:34:42 +0100 Subject: [PATCH] Move json to API and strip index action --- .../resources/order_resource.js.coffee | 1 + app/controllers/api/orders_controller.rb | 23 +++++++++++++++++++ .../admin/orders_controller_decorator.rb | 16 +------------ config/routes.rb | 2 ++ 4 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 app/controllers/api/orders_controller.rb diff --git a/app/assets/javascripts/admin/resources/resources/order_resource.js.coffee b/app/assets/javascripts/admin/resources/resources/order_resource.js.coffee index d5679c629e..9bf7ad5838 100644 --- a/app/assets/javascripts/admin/resources/resources/order_resource.js.coffee +++ b/app/assets/javascripts/admin/resources/resources/order_resource.js.coffee @@ -1,6 +1,7 @@ angular.module("admin.resources").factory 'OrderResource', ($resource) -> $resource('/admin/orders/:id/:action.json', {}, { 'index': + url: '/api/orders.json' method: 'GET' 'update': method: 'PUT' diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb new file mode 100644 index 0000000000..a03eb3b36b --- /dev/null +++ b/app/controllers/api/orders_controller.rb @@ -0,0 +1,23 @@ +module Api + class OrdersController < BaseController + def index + authorize! :admin, Spree::Order + + search_results = SearchOrders.new(params, spree_current_user) + + render json: { + orders: serialized_orders(search_results.orders), + pagination: search_results.pagination_data + } + end + + private + + def serialized_orders(orders) + ActiveModel::ArraySerializer.new( + orders, + each_serializer: Api::Admin::OrderSerializer + ) + end + end +end diff --git a/app/controllers/spree/admin/orders_controller_decorator.rb b/app/controllers/spree/admin/orders_controller_decorator.rb index 4344ce98f7..2ef5245af1 100644 --- a/app/controllers/spree/admin/orders_controller_decorator.rb +++ b/app/controllers/spree/admin/orders_controller_decorator.rb @@ -23,17 +23,7 @@ Spree::Admin::OrdersController.class_eval do respond_to :html, :json def index - @results = SearchOrders.new(params, spree_current_user) if json_request? - - respond_to do |format| - format.html - format.json do - render json: { - orders: serialized_orders, - pagination: @results.pagination_data - } - end - end + # Moved to api. Overriding the action so we only render the page template. end # Overwrite to use confirm_email_for_customer instead of confirm_email. @@ -96,8 +86,4 @@ Spree::Admin::OrdersController.class_eval do render 'set_distribution', locals: { order: @order } end end - - def serialized_orders - ActiveModel::ArraySerializer.new(@results.orders, each_serializer: Api::Admin::OrderSerializer) - end end diff --git a/config/routes.rb b/config/routes.rb index bc3fc303f0..1196e950ee 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -103,6 +103,8 @@ Openfoodnetwork::Application.routes.draw do get :accessible, on: :collection end + resources :orders, only: [:index] + resource :status do get :job_queue end