diff options
author | Ash McKenzie <amckenzie@gitlab.com> | 2019-09-06 02:58:00 +0000 |
---|---|---|
committer | Ash McKenzie <amckenzie@gitlab.com> | 2019-09-06 02:58:00 +0000 |
commit | 428500186952519ae1ad335dc5c05364bf8563b4 (patch) | |
tree | b4a1574e87cd51c99f7313c29517c00af438d846 /app/services/issuable_base_service.rb | |
parent | 71ff2c13e8241a4c19cb902e6ab62d2fb99630d4 (diff) | |
parent | 582e075e9f51567a0f004e5b34ca099b09a72059 (diff) | |
download | gitlab-ce-428500186952519ae1ad335dc5c05364bf8563b4.tar.gz |
Merge branch 'add-label-push-opts' into 'master'
Support adding and removing labels w/ push opts
Closes #5942
See merge request gitlab-org/gitlab-ce!31831
Diffstat (limited to 'app/services/issuable_base_service.rb')
-rw-r--r-- | app/services/issuable_base_service.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index 3555864f834..900e5063621 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -76,13 +76,16 @@ class IssuableBaseService < BaseService end def filter_labels - params[:add_label_ids] = labels_service.filter_labels_ids_in_param(:add_label_ids) if params[:add_label_ids] - params[:remove_label_ids] = labels_service.filter_labels_ids_in_param(:remove_label_ids) if params[:remove_label_ids] + 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 |