class Trailblazer::Finder::Activities::PreparePaging

Public Instance Methods

check_paging(ctx, **) click to toggle source
# File lib/trailblazer/finder/activities/prepare_paging.rb, line 7
def check_paging(ctx, **)
  paging = ctx[:config][:paging] || nil
  return false if ctx[:config][:paging].empty? || paging.nil?

  true
end
clear_paging(ctx, **) click to toggle source
# File lib/trailblazer/finder/activities/prepare_paging.rb, line 25
def clear_paging(ctx, **)
  ctx[:params].delete(:page) unless ctx[:params][:page].nil?
  true
end
set_paging(ctx, **) click to toggle source
# File lib/trailblazer/finder/activities/prepare_paging.rb, line 14
def set_paging(ctx, **)
  ctx[:paging] = ctx.dig(:config,:paging) || {}
  ctx[:paging][:current_page] = ctx.dig(:params,:page) || 1
  return true unless ctx[:params][:per_page]

  ctx[:paging][:per_page] = ctx[:params][:per_page].to_i || ctx[:paging][:per_page]
  ctx[:paging][:per_page] = ctx[:paging][:max_per_page] if ctx[:paging][:per_page] > ctx[:paging][:max_per_page]
  ctx[:paging][:per_page] = ctx[:paging][:min_per_page] if ctx[:paging][:per_page] < ctx[:paging][:min_per_page]
  true
end