Skip to content
Snippets Groups Projects
Verified Commit f086dbf6 authored by Nick Thomas's avatar Nick Thomas
Browse files

Add a thin encapsulation around .pluck(:id)

parent 013f7cd2
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -7,6 +7,14 @@ class ApplicationRecord < ActiveRecord::Base
where(id: ids)
end
 
def self.id_not_in(ids)
where.not(id: ids)
end
def self.pluck_primary_key
where(nil).pluck(self.primary_key)
end
def self.safe_find_or_create_by!(*args)
safe_find_or_create_by(*args).tap do |record|
record.validate! unless record.persisted?
Loading
Loading
Loading
Loading
@@ -76,13 +76,11 @@ class IssuableBaseService < BaseService
find_or_create_label_ids
end
 
# rubocop: disable CodeReuse/ActiveRecord
def filter_labels_in_param(key)
return if params[key].to_a.empty?
 
params[key] = available_labels.where(id: params[key]).pluck(:id)
params[key] = available_labels.id_in(params[key]).pluck_primary_key
end
# rubocop: enable CodeReuse/ActiveRecord
 
def find_or_create_label_ids
labels = params.delete(:labels)
Loading
Loading
Loading
Loading
@@ -8,15 +8,13 @@ module MergeRequests
@merge_request = merge_request
end
 
# rubocop: disable CodeReuse/ActiveRecord
def execute
diffs = @merge_request.non_latest_diffs.with_files
 
diffs.each_batch(of: BATCH_SIZE) do |relation, index|
ids = relation.pluck(:id).map { |id| [id] }
ids = relation.pluck_primary_key.map { |id| [id] }
DeleteDiffFilesWorker.bulk_perform_in(index * 5.minutes, ids)
end
end
# rubocop: enable CodeReuse/ActiveRecord
end
end
Loading
Loading
@@ -26,17 +26,15 @@ module Milestones
 
private
 
# rubocop: disable CodeReuse/ActiveRecord
def milestone_ids_for_merge(group_milestone)
# Pluck need to be used here instead of select so the array of ids
# is persistent after old milestones gets deleted.
@milestone_ids_for_merge ||= begin
search_params = { title: group_milestone.title, project_ids: group_project_ids, state: 'all' }
milestones = MilestonesFinder.new(search_params).execute
milestones.pluck(:id)
milestones.pluck_primary_key
end
end
# rubocop: enable CodeReuse/ActiveRecord
 
def move_children_to_group_milestone(group_milestone)
milestone_ids_for_merge(group_milestone).in_groups_of(100, false) do |milestone_ids|
Loading
Loading
Loading
Loading
@@ -554,7 +554,7 @@ module QuickActions
current_user.can?(:"update_#{issuable.to_ability_name}", issuable) &&
issuable.project.boards.count == 1
end
# rubocop: disable CodeReuse/ActiveRecord
command :board_move do |target_list_name|
label_ids = find_label_ids(target_list_name)
 
Loading
Loading
@@ -562,14 +562,17 @@ module QuickActions
label_id = label_ids.first
 
# Ensure this label corresponds to a list on the board
next unless Label.on_project_boards(issuable.project_id).where(id: label_id).exists?
next unless Label.on_project_boards(issuable.project_id).id_in(label_id).exists?
@updates[:remove_label_ids] = issuable
.labels
.on_project_boards(issuable.project_id)
.id_not_in(label_id)
.pluck_primary_key
 
@updates[:remove_label_ids] =
issuable.labels.on_project_boards(issuable.project_id).where.not(id: label_id).pluck(:id)
@updates[:add_label_ids] = [label_id]
end
end
# rubocop: enable CodeReuse/ActiveRecord
 
desc 'Mark this issue as a duplicate of another issue'
explanation do |duplicate_reference|
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment