From a1146aed1b20d2636a7299601cd55b3b2da3a099 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Sun, 3 Nov 2019 14:37:38 +0000 Subject: [PATCH] Refactor #sort_by_supplier_id --- .../api/admin/order_cycle_serializer.rb | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/app/serializers/api/admin/order_cycle_serializer.rb b/app/serializers/api/admin/order_cycle_serializer.rb index 7e165cf547..8a0f66640a 100644 --- a/app/serializers/api/admin/order_cycle_serializer.rb +++ b/app/serializers/api/admin/order_cycle_serializer.rb @@ -33,7 +33,7 @@ class Api::Admin::OrderCycleSerializer < ActiveModel::Serializer end def editable_variants_for_incoming_exchanges - sort_by_supplier_id(permissions.all_incoming_editable_variants.all) + variant_ids_by_supplier_id(permissions.all_incoming_editable_variants.all) end def editable_variants_for_outgoing_exchanges @@ -79,17 +79,10 @@ class Api::Admin::OrderCycleSerializer < ActiveModel::Serializer @visible_enterprises ||= permissions.visible_enterprises end - def sort_by_supplier_id(variants) - collection = {} - variants.map do |variant| - supplier_id = variant.product.supplier_id - - if collection.key? supplier_id - collection[supplier_id] << variant.id - else - collection[supplier_id] = [variant.id] - end + def variant_ids_by_supplier_id(variants) + grouped_by_supplier = variants.group_by(&:supplier_id) + grouped_by_supplier.each do |supplier_id, grouped_variants| + grouped_by_supplier[supplier_id] = grouped_variants.map(&:id) end - collection end end