Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/finders/environments_finder.rb')
-rw-r--r--app/finders/environments_finder.rb63
1 files changed, 0 insertions, 63 deletions
diff --git a/app/finders/environments_finder.rb b/app/finders/environments_finder.rb
deleted file mode 100644
index c64e850f440..00000000000
--- a/app/finders/environments_finder.rb
+++ /dev/null
@@ -1,63 +0,0 @@
-# frozen_string_literal: true
-
-class EnvironmentsFinder
- attr_reader :project, :current_user, :params
-
- InvalidStatesError = Class.new(StandardError)
-
- def initialize(project, current_user, params = {})
- @project = project
- @current_user = current_user
- @params = params
- end
-
- def execute
- environments = project.environments
- environments = by_name(environments)
- environments = by_search(environments)
-
- # Raises InvalidStatesError if params[:states] contains invalid states.
- by_states(environments)
- end
-
- private
-
- def by_name(environments)
- if params[:name].present?
- environments.for_name(params[:name])
- else
- environments
- end
- end
-
- def by_search(environments)
- if params[:search].present?
- environments.for_name_like(params[:search], limit: nil)
- else
- environments
- end
- end
-
- def by_states(environments)
- if params[:states].present?
- environments_with_states(environments)
- else
- environments
- end
- end
-
- def environments_with_states(environments)
- # Convert to array of strings
- states = Array(params[:states]).map(&:to_s)
-
- raise InvalidStatesError, _('Requested states are invalid') unless valid_states?(states)
-
- environments.with_states(states)
- end
-
- def valid_states?(states)
- valid_states = Environment.valid_states.map(&:to_s)
-
- (states - valid_states).empty?
- end
-end