From 582e075e9f51567a0f004e5b34ca099b09a72059 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Aug 2019 21:28:19 +0200 Subject: [PATCH] Simplify filter_labels method in IssuableBaseService IssuableBaseService::filter_labels() has been refactored to call a new `label_ids_to_filter` method. --- app/services/issuable_base_service.rb | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index d1803602cb1..c460ee4e7bc 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -76,22 +76,16 @@ class IssuableBaseService < BaseService end def filter_labels - if params[:add_label_ids] - params[:add_label_ids] = labels_service.filter_labels_ids_in_param(:add_label_ids) - elsif params[:add_labels] - params[:add_label_ids] = labels_service.find_or_create_by_titles(:add_labels).map(&:id) - end + label_ids_to_filter(:add_label_ids, :add_labels, false) + label_ids_to_filter(:remove_label_ids, :remove_labels, true) + label_ids_to_filter(:label_ids, :labels, false) + end - if params[:remove_label_ids] - params[:remove_label_ids] = labels_service.filter_labels_ids_in_param(:remove_label_ids) - elsif params[:remove_labels] - params[:remove_label_ids] = labels_service.find_or_create_by_titles(:remove_labels, find_only: true).map(&:id) - end - - if params[:label_ids] - params[:label_ids] = labels_service.filter_labels_ids_in_param(:label_ids) - elsif params[:labels] - params[:label_ids] = labels_service.find_or_create_by_titles.map(&:id) + def label_ids_to_filter(label_id_key, label_key, find_only) + if params[label_id_key] + params[label_id_key] = labels_service.filter_labels_ids_in_param(label_id_key) + elsif params[label_key] + params[label_id_key] = labels_service.find_or_create_by_titles(label_key, find_only: find_only).map(&:id) end end