Sha256: 3aa68df7afb7914c29da7e1444b5bf4a49ebee6f89608dcbb81b2be3b63bf8ff

Contents?: true

Size: 896 Bytes

Versions: 2

Compression:

Stored size: 896 Bytes

Contents

module Spree
  module Account
    class FavouritesController < Spree::StoreController

      def index
        @user = try_spree_current_user
        if @user
          line_items = Spree::LineItem.includes(:variant, order: [:user]).where(['spree_orders.user_id = ?', @user.id]).all
          ordered_items = line_items.inject({}) do |result, line_item|
            if result[line_item.variant.sku]
              result[line_item.variant.sku][:number_of_orders] = result[line_item.variant.sku][:number_of_orders] + 1
            else
              result[line_item.variant.sku] = {variant: line_item.variant, number_of_orders: 1}
            end
            result
          end

          @favourites = ordered_items.values
          @favourites = @favourites.sort_by{|favourite| favourite[:number_of_orders]}.reverse
        else
          unauthorized
        end
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spree_my_favourites-2.2.2 app/controllers/spree/account/favourites_controller.rb
spree_my_favourites-2.2.1 app/controllers/spree/account/favourites_controller.rb