Class: Api::Partner::V1::RestaurantAddOnsController
- Inherits:
-
BaseController
- Object
- ActionController::API
- BaseController
- Api::Partner::V1::RestaurantAddOnsController
- Includes:
- ElasticAPM::SpanHelpers
- Defined in:
- app/controllers/api/partner/v1/restaurant_add_ons_controller.rb
Instance Method Summary collapse
Methods inherited from BaseController
#default_restaurant, #identity_cache_memoization, #render_unauthorize_action, #restaurants, #set_options
Methods included from LogrageCustomLogger
Methods included from ControllerHelpers
#check_boolean_param, #get_banners, #inventory_params, #reservation_params
Methods included from ResponseCacheConcern
Instance Method Details
#index ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/api/partner/v1/restaurant_add_ons_controller.rb', line 9 def index filter_params = params.fetch(:filter, {}) order_params = params.fetch(:order_by, {}) all_add_ons = AddOns::Restaurant.includes(:add_on, add_on: :pricing). where(restaurant_id: restaurants.ids) filter = Api::Partner::RestaurantAddOnsFilter.new(all_add_ons) filter.order_by(order_params) filter.filter(filter_params) if filter_params.present? add_ons = filter.build_collections pagy, add_ons = begin pagy(add_ons, items: params[:per_page] || 10, page: params[:page] || 1) rescue Pagy::OverflowError params[:page] = 1 params[:per_page] = 10 pagy(add_ons, items: params[:per_page], page: params[:page]) end = (pagy) render json: ::Api::Partner::RestaurantAddOnSerializer.new(add_ons, ).as_json end |