class Paginable::PlansController < ApplicationController
  include Paginable
  # /paginable/plans/privately_visible/:page
  def privately_visible
    raise Pundit::NotAuthorizedError unless Paginable::PlanPolicy.new(current_user).privately_visible?
    paginable_renderise(partial: 'privately_visible', scope: Plan.active(current_user))
  end
  # GET /paginable/plans/organisationally_or_publicly_visible/:page
  def organisationally_or_publicly_visible
    raise Pundit::NotAuthorizedError unless Paginable::PlanPolicy.new(current_user).organisationally_or_publicly_visible?
    paginable_renderise(partial: 'organisationally_or_publicly_visible',
      scope: Plan.organisationally_or_publicly_visible(current_user))
  end
  # GET /paginable/plans/publicly_visible/:page
  def publicly_visible
    paginable_renderise(
      partial: 'publicly_visible',
      scope: Plan.publicly_visible
    )
  end
  # GET /paginable/plans/org_admin/:page
  def org_admin
    raise Pundit::NotAuthorizedError unless current_user.present? && current_user.can_org_admin?
    paginable_renderise(partial: 'org_admin',
      scope: current_user.org.plans)
  end
end