Class: Api::Partner::V1::ReviewsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/api/partner/v1/reviews_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

#append_info_to_payload

Methods included from ControllerHelpers

#check_boolean_param, #get_banners, #inventory_params, #reservation_params

Methods included from ResponseCacheConcern

#my_response_cache

Instance Method Details

#indexObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/api/partner/v1/reviews_controller.rb', line 7

def index
  reviews  = Review.includes(
    :rates, :review_recommended_fors,
    [reservation: :owner_review],
    [reservation: :user],
    [reservation: :restaurant],
    [reservation: :property]
  ).joins(:reservation).where(reservations: {restaurant_id: restaurants.ids, active: true})

  filter_params = params.fetch(:filter, {})
  reviews = Api::Partner::ReviewsFilter.new(reviews, restaurants)
  reviews.filter(filter_params)
  pagy, reviews = pagy(reviews.to_collections, items: params[:per_page] || 10, page: params[:page] || 1)

  render json: ::Api::Partner::ReviewSerializer.new(reviews, set_options(pagy)).as_json
end