summaryrefslogtreecommitdiff
path: root/app/finders/group_labels_finder.rb
blob: a668a0f0faef9a5e86915b5d2b99a1bf1de37482 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

class GroupLabelsFinder
  attr_reader :current_user, :group, :params

  def initialize(current_user, group, params = {})
    @current_user = current_user
    @group = group
    @params = params
  end

  def execute
    group.labels
      .optionally_subscribed_by(subscriber_id)
      .optionally_search(params[:search])
      .order_by(params[:sort])
      .page(params[:page])
  end

  private

  def subscriber_id
    current_user&.id if subscribed?
  end

  def subscribed?
    params[:subscribed] == 'true'
  end
end