Class: Api::Partner::BaseSerializer

Inherits:
Object
  • Object
show all
Includes:
JSONAPI::Serializer
Defined in:
app/serializers/api/partner/base_serializer.rb

Class Method Summary collapse

Class Method Details

.enable_cachingObject



10
11
12
# File 'app/serializers/api/partner/base_serializer.rb', line 10

def self.enable_caching
  cache_options store: Rails.cache, namespace: 'api/partner', expires_in: 12.hours, enabled: true
end

.mtimeObject



6
7
8
# File 'app/serializers/api/partner/base_serializer.rb', line 6

def self.mtime
  File.mtime Rails.root.join('app', 'serializers', "#{to_s.underscore}.rb").to_s
end

.record_cache_options(options, fieldset, include_list, params) ⇒ Object

The method appends locale and an optional custom cache key to the cache namespace to differentiate cached data based on locale and any updates to associated data.

Example Usage: cache_key = “staff_profile:#Api::Partner::BaseSerializer.restaurantsrestaurants.cache_key” Api::Partner::StaffSerializer.new(current_staff, params: { cache_key: cache_key })



20
21
22
23
24
25
# File 'app/serializers/api/partner/base_serializer.rb', line 20

def self.record_cache_options(options, fieldset, include_list, params)
  opts = options.dup
  opts[:namespace] += ":#{MyLocaleManager.normalize_locale}"
  opts[:namespace] += ":#{params[:cache_key]}" if params[:cache_key].present?
  super(opts, fieldset, include_list, params)
end