Class: Labels::TransferService
- Inherits:
-
Object
- Object
- Labels::TransferService
- Defined in:
- app/services/labels/transfer_service.rb
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(current_user, old_group, project) ⇒ TransferService
constructor
A new instance of TransferService.
Constructor Details
#initialize(current_user, old_group, project) ⇒ TransferService
Returns a new instance of TransferService.
9 10 11 12 13 |
# File 'app/services/labels/transfer_service.rb', line 9 def initialize(current_user, old_group, project) @current_user = current_user @old_group = old_group @project = project end |
Instance Method Details
#execute ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/services/labels/transfer_service.rb', line 15 def execute return unless old_group.present? # rubocop: disable CodeReuse/ActiveRecord link_ids = group_labels_applied_to_issues.pluck("label_links.id") + group_labels_applied_to_merge_requests.pluck("label_links.id") # rubocop: disable CodeReuse/ActiveRecord Label.transaction do labels_to_transfer.find_each do |label| new_label_id = find_or_create_label!(label) next if new_label_id == label.id update_label_links(link_ids, old_label_id: label.id, new_label_id: new_label_id) update_label_priorities(old_label_id: label.id, new_label_id: new_label_id) end end end |