29 lines
553 B
Ruby
29 lines
553 B
Ruby
# 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
|