26 lines
498 B
Ruby
26 lines
498 B
Ruby
module Labels
|
|
class GroupService < ::BaseService
|
|
def initialize(project_labels)
|
|
@project_labels = project_labels.group_by(&:title)
|
|
end
|
|
|
|
def execute
|
|
build(@project_labels)
|
|
end
|
|
|
|
def label(title)
|
|
if title
|
|
group_label = @project_labels[title].group_by(&:title)
|
|
build(group_label).first
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def build(label)
|
|
label.map { |title, labels| GroupLabel.new(title, labels) }
|
|
end
|
|
end
|
|
end
|