Class: Api::Dashboard::V2::BaseController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/api/dashboard/v2/base_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#current_user, #identity_cache_memoization, #restaurants

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

#set_options(pagy = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/api/dashboard/v2/base_controller.rb', line 6

def set_options(pagy = {})
  options = {}
  if pagy.present?
    options[:meta] = {
      total: (pagy).fetch(:count),
      page: (pagy).fetch(:page),
      total_page: (pagy).fetch(:pages),
      default_page: 1
    }

    options[:links] = {
      self: (pagy).fetch(:page_url),
      first: (pagy).fetch(:first_url),
      next: (pagy).fetch(:next_url),
      prev: (pagy).fetch(:prev_url),
      last: (pagy).fetch(:last_url)
    }
  end
  options[:include] = params.fetch(:include, '').split(',') || []
  options[:fields] = params.fetch(:fields, {}).to_unsafe_hash.map { |rel, fields| { rel => fields.split(',').map(&:to_sym) } }.reduce({}, :merge) || {}
  options[:params] = {current_staff: current_staff}
  fix_include_options(options)
end