32 lines
737 B
Ruby
32 lines
737 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Ci
|
||
|
class VariablesFinder
|
||
|
attr_reader :project, :params
|
||
|
|
||
|
def initialize(project, params)
|
||
|
@project, @params = project, params
|
||
|
|
||
|
raise ArgumentError, 'Please provide params[:key]' if params[:key].blank?
|
||
|
end
|
||
|
|
||
|
def execute
|
||
|
variables = project.variables
|
||
|
variables = by_key(variables)
|
||
|
variables = by_environment_scope(variables)
|
||
|
variables
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def by_key(variables)
|
||
|
variables.by_key(params[:key])
|
||
|
end
|
||
|
|
||
|
def by_environment_scope(variables)
|
||
|
environment_scope = params.dig(:filter, :environment_scope)
|
||
|
environment_scope.present? ? variables.by_environment_scope(environment_scope) : variables
|
||
|
end
|
||
|
end
|
||
|
end
|