From 4bb26533065f8beab4a03411cb500db0fae128d8 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 5 Jan 2021 18:55:22 +0000 Subject: [PATCH] Tidy up pagination in Api::ProductsController#overridable and Angular PagedFetcher service Refactors away some unnecessary mess and unblocks the last remaining issue in upgrading the Kaminari gem (deprecated calls to #num_pages method) --- .../index_utils/services/paged_fetcher.js.coffee | 2 +- app/controllers/api/products_controller.rb | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/admin/index_utils/services/paged_fetcher.js.coffee b/app/assets/javascripts/admin/index_utils/services/paged_fetcher.js.coffee index 96836ef9cc..732f4a811f 100644 --- a/app/assets/javascripts/admin/index_utils/services/paged_fetcher.js.coffee +++ b/app/assets/javascripts/admin/index_utils/services/paged_fetcher.js.coffee @@ -16,7 +16,7 @@ angular.module("admin.indexUtils").factory "PagedFetcher", (dataFetcher) -> fetchPages: (url, page, pageCallback) -> dataFetcher(@urlForPage(url, page)).then (data) => @page++ - @last_page = data.pages + @last_page = data.pagination.pages pageCallback(data) if pageCallback diff --git a/app/controllers/api/products_controller.rb b/app/controllers/api/products_controller.rb index 3509d33bfd..0dd2d26d60 100644 --- a/app/controllers/api/products_controller.rb +++ b/app/controllers/api/products_controller.rb @@ -130,18 +130,15 @@ module Api end def render_paged_products(products, product_serializer = ::Api::Admin::ProductSerializer) - serializer = ActiveModel::ArraySerializer.new( + serialized_products = ActiveModel::ArraySerializer.new( products, each_serializer: product_serializer ) - render text: { - products: serializer, - # This line is used by the PagedFetcher JS service (inventory). - pages: products.num_pages, - # This hash is used by the BulkProducts JS service. + render json: { + products: serialized_products, pagination: pagination_data(products) - }.to_json + } end def query_params_with_defaults