Class: SpreeCmCommissioner::Routes::Find
- Inherits:
-
Object
- Object
- SpreeCmCommissioner::Routes::Find
- Defined in:
- app/finders/spree_cm_commissioner/routes/find.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(vendor: nil, tenant: nil, params: {}, include_route_prices: false) ⇒ Find
constructor
A new instance of Find.
Constructor Details
#initialize(vendor: nil, tenant: nil, params: {}, include_route_prices: false) ⇒ Find
Returns a new instance of Find.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/finders/spree_cm_commissioner/routes/find.rb', line 11 def initialize(vendor: nil, tenant: nil, params: {}, include_route_prices: false) @vendor = vendor @tenant = tenant @params = params || {} @include_route_prices = include_route_prices @ids = Array(@params[:ids]).map(&:to_s) @name = @params.dig(:filter, :name) || @params[:name] @route_type = @params.dig(:filter, :route_type) || @params[:route_type] @origin_place_id = @params.dig(:filter, :origin_place_id) @destination_place_id = @params.dig(:filter, :destination_place_id) @query = @params.dig(:filter, :query) || @params[:query] @limit = (@params[:limit] || @params.dig(:page, :limit) || 50).to_i @order = @params[:order] || 'created_at DESC' end |
Instance Method Details
#execute ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/finders/spree_cm_commissioner/routes/find.rb', line 27 def execute results = base_scope results = by_ids(results) if ids? results = by_name(results) if name? results = by_route_type(results) if route_type? results = by_origin_place(results) if origin_place_id.present? results = by_destination_place(results) if destination_place_id.present? results = by_query(results) if query? results.order(order_clause).limit(limit) end |