From a980f2a54e64d2ccf7e901a065f6a0dc2a8103da Mon Sep 17 00:00:00 2001
From: Manoj M J <mmj@gitlab.com>
Date: Mon, 20 Dec 2021 11:19:31 +0530
Subject: [PATCH] Use `Arel::Nodes::ValuesList` in `EffectiveAccessLevelFinder`

This MR makes changes such that we now use
`Arel::Nodes::ValuesList` in
`EffectiveAccessLevelFinder` to generate
the query that finds members with
their user ids and access levels
in a given project.
---
 .../projects/members/effective_access_level_finder.rb     | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/app/finders/projects/members/effective_access_level_finder.rb b/app/finders/projects/members/effective_access_level_finder.rb
index d238679f2fbff..4538fc4c8554e 100644
--- a/app/finders/projects/members/effective_access_level_finder.rb
+++ b/app/finders/projects/members/effective_access_level_finder.rb
@@ -27,13 +27,9 @@ def execute
       attr_reader :project
 
       def generate_from_statement(user_ids_and_access_levels)
-        "(VALUES #{generate_values_expression(user_ids_and_access_levels)}) members (user_id, access_level)"
-      end
+        values_list = Arel::Nodes::ValuesList.new(user_ids_and_access_levels).to_sql
 
-      def generate_values_expression(user_ids_and_access_levels)
-        user_ids_and_access_levels.map do |user_id, access_level|
-          "(#{user_id}, #{access_level})"
-        end.join(",")
+        "(#{values_list}) members (user_id, access_level)"
       end
 
       def no_members?
-- 
GitLab