You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							54 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							54 lines
						
					
					
						
							1.2 KiB
						
					
					
				module Configuration | 
						|
  class ConfigurationService | 
						|
    attr_reader :s3_buckets, :redis_uris | 
						|
 | 
						|
    def initialize(logger = Rails.logger) | 
						|
      @logger = logger | 
						|
      @config = read_config | 
						|
      @s3_buckets = read_s3_buckets | 
						|
      @redis_uris = read_redis_uris | 
						|
    end | 
						|
 | 
						|
    def s3_config_present? | 
						|
      config_present? && @config.key?(:"aws-s3-bucket") | 
						|
    end | 
						|
 | 
						|
    def redis_config_present? | 
						|
      config_present? && @config.key?(:redis) | 
						|
    end | 
						|
 | 
						|
  private | 
						|
 | 
						|
    def config_present? | 
						|
      raise NotImplementedError | 
						|
    end | 
						|
 | 
						|
    def read_config | 
						|
      raise NotImplementedError | 
						|
    end | 
						|
 | 
						|
    def read_s3_buckets | 
						|
      return {} unless s3_config_present? | 
						|
 | 
						|
      s3_buckets = {} | 
						|
      @config[:"aws-s3-bucket"].each do |bucket_config| | 
						|
        if bucket_config.key?(:instance_name) | 
						|
          s3_buckets[bucket_config[:instance_name].to_sym] = bucket_config | 
						|
        end | 
						|
      end | 
						|
      s3_buckets | 
						|
    end | 
						|
 | 
						|
    def read_redis_uris | 
						|
      return {} unless redis_config_present? | 
						|
 | 
						|
      redis_uris = {} | 
						|
      @config[:redis].each do |redis_config| | 
						|
        if redis_config.key?(:instance_name) | 
						|
          redis_uris[redis_config[:instance_name].to_sym] = redis_config.dig(:credentials, :uri) | 
						|
        end | 
						|
      end | 
						|
      redis_uris | 
						|
    end | 
						|
  end | 
						|
end
 | 
						|
 |