Class: Api::Aoa::V1::ReviewsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/api/aoa/v1/reviews_controller.rb

Constant Summary

Constants inherited from BaseController

BaseController::CACHE_NAMESPACE

Instance Method Summary collapse

Methods inherited from BaseController

#identity_cache_memoization

Methods included from LogrageCustomLogger

#append_info_to_payload

Methods included from ResponseCacheConcern

#my_response_cache

Instance Method Details

#indexObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/api/aoa/v1/reviews_controller.rb', line 3

def index
  restaurant = Restaurant.fetch_by_id(params.require(:restaurant_id))
  return render '/404', status: :not_found if restaurant.nil?

  page = params.fetch(:page, {})
  filter = Api::V5::ReviewsFilter.new
  filter.scope_by(restaurant_id: restaurant.id)
  filter.page_number(page[:number].presence || 1).
    per_page(page[:size].presence || 10).
    use_default_order.
    sort_by(params[:sort])
  my_response_cache(filter.collections.cache_key, :json, public: true) do
    Api::Aoa::V1::ReviewSerializer.new(filter.collections)
  end
end