Add guard clause and remove conditionals

Sometimes the objects are not paginated. In this case we need to avoid trying to render pagination data, as it will throw an error. This guard clause also means we can remove messy conditionals from several controllers.
This commit is contained in:
Matt-Yorkley
2021-01-05 18:51:24 +00:00
parent f53089c16c
commit 47f9a3f08a
4 changed files with 8 additions and 3 deletions

View File

@@ -15,7 +15,10 @@ module Admin
@line_items = @line_items.page(page).per(params[:per_page]) if pagination_required?
render json: { line_items: serialized_line_items, pagination: (pagination_required? ? pagination_data(@line_items) : nil) }
render json: {
line_items: serialized_line_items,
pagination: pagination_data(@line_items)
}
end
# PUT /admin/bulk_line_items/:id.json

View File

@@ -86,7 +86,7 @@ module Api
render json: {
products: serialized_products,
pagination: pagination_required? ? pagination_data(paginated_products) : nil
pagination: pagination_data(paginated_products)
}
end
end

View File

@@ -16,7 +16,7 @@ module Api
render json: {
orders: serialized_orders(orders),
pagination: pagination_required? ? pagination_data(orders) : nil
pagination: pagination_data(orders)
}
end

View File

@@ -4,6 +4,8 @@ module PaginationData
extend ActiveSupport::Concern
def pagination_data(objects)
return unless objects.respond_to? :total_count
{
results: objects.total_count,
pages: objects.total_pages,