Sha256: 173448b9fc37253339a8ebd20f3b1275cc3adb9351883f8ac63ede77df8f18f2

Contents?: true

Size: 700 Bytes

Versions: 1

Compression:

Stored size: 700 Bytes

Contents

module Shopper
  module OrdersPage
    class GetOrders < Rectify::Command
      FILTERS = [
        :all,
        :processing,
        :in_delivery,
        :delivered
      ].freeze

      def call
        set_current_filter
        broadcast(:invalid_filter) if @current_filter.nil?
        @current_filter ||= :all

        broadcast(:ok, orders, FILTERS, @current_filter)
      end

      def orders
        FilteredOrders.new(
          user: current_customer,
          state: @current_filter
        ).query
      end

      private

      def set_current_filter
        filter = params[:filter]&.to_sym
        @current_filter = FILTERS.detect { |f| f == filter }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoppper-0.1.0 app/commands/shopper/orders_page/get_orders.rb