summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Couder <chriscool@tuxfamily.org>2019-08-30 21:28:19 +0200
committerChristian Couder <chriscool@tuxfamily.org>2019-09-04 12:11:31 +0200
commit582e075e9f51567a0f004e5b34ca099b09a72059 (patch)
tree546a3622f52b136a71bdaedc9a78a3df623fed86
parent760d4a16214b2ae77c4c0ea9c719815e9473dcd9 (diff)
downloadgitlab-ce-add-label-push-opts.tar.gz
Simplify filter_labels method in IssuableBaseServiceadd-label-push-opts
IssuableBaseService::filter_labels() has been refactored to call a new `label_ids_to_filter` method.
-rw-r--r--app/services/issuable_base_service.rb24
1 files 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
-
- 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
+ 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[: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