Class: Api::Partner::ReservationSummariesFilter
- Inherits:
-
Object
- Object
- Api::Partner::ReservationSummariesFilter
- Includes:
- ElasticAPM::SpanHelpers, ReservationHistory
- Defined in:
- app/filters/api/partner/reservation_summaries_filter.rb
Overview
This filter expects associations to be pre-loaded by the controller. It does not handle association loading internally for optimal performance.
Filter class for Partner API reservation summaries with dashboard pattern optimization.
This filter follows the dashboard controller pattern where the controller builds the base query with associations loaded, and the filter only handles filtering logic. This approach provides better performance and separation of concerns.
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#as_json(collections, options = {}) ⇒ Hash
Serialize collections to JSON using the reservation summary serializer.
-
#build_collections ⇒ ActiveRecord::Relation
Build the final filtered and ordered collections.
-
#filter(filter_par) ⇒ void
Apply filters to the collections.
-
#filter_params ⇒ Hash?
Get the current filter parameters.
-
#initialize(base_collections, restaurant_ids = nil) ⇒ ReservationSummariesFilter
constructor
A new instance of ReservationSummariesFilter.
-
#order_by(order) ⇒ void
Apply ordering to the collections.
Methods included from ReservationHistory
Constructor Details
#initialize(base_collections, restaurant_ids = nil) ⇒ ReservationSummariesFilter
Returns a new instance of ReservationSummariesFilter.
68 69 70 71 72 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 68 def initialize(base_collections, restaurant_ids = nil) @config = {} @restaurant_ids = restaurant_ids self.collections = base_collections end |
Instance Attribute Details
#collections ⇒ Object
53 54 55 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 53 def collections @collections end |
#error_message ⇒ Object
53 54 55 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 53 def @error_message end |
#restaurant_ids ⇒ Object (readonly)
54 55 56 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 54 def restaurant_ids @restaurant_ids end |
Instance Method Details
#as_json(collections, options = {}) ⇒ Hash
Serialize collections to JSON using the reservation summary serializer
117 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 117 span_method :as_json |
#build_collections ⇒ ActiveRecord::Relation
Build the final filtered and ordered collections
Applies all configured filters and ordering to the base collections. This method should be called after setting filters and ordering.
151 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 151 span_method :build_collections |
#filter(filter_par) ⇒ void
This method returns an undefined value.
Apply filters to the collections
87 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 87 span_method :filter |
#filter_params ⇒ Hash?
Get the current filter parameters
180 181 182 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 180 def filter_params config[:filter] end |
#order_by(order) ⇒ void
This method returns an undefined value.
Apply ordering to the collections
101 |
# File 'app/filters/api/partner/reservation_summaries_filter.rb', line 101 span_method :order_by |