Class: Api::V5::PromotionsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/api/v5/promotions_controller.rb

Overview

typed: ignore frozen_string_literal: true

Constant Summary

Constants inherited from BaseController

BaseController::CACHE_NAMESPACE, BaseController::INTERNAL_SERVER_ERROR_MESSAGE, BaseController::ResponseSchema

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



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/controllers/api/v5/promotions_controller.rb', line 5

def index
  cache_key = "Api::V5::Promotions:#{Promotion.maximum(:updated_at)}:#{CityHash.hash32(params)}:#{I18n.locale}"
  my_response_cache "#{self.class}:index:#{cache_key}", :json do
    page = params.fetch(:page, {})
    filter = Api::V5::PromotionsFilter.new
    filter.init_default.
      page_number(page[:number]).
      per_page(page[:size]).
      created_or_updated_after(params[:after])
    filter.as_json(serialization_context, minor_version_param).merge(success: true, message: nil)
  end
  set_status_header(true)
end