diff --git a/app/services/configuration/configuration_service.rb b/app/services/configuration/configuration_service.rb index efc2c4907..07617a807 100644 --- a/app/services/configuration/configuration_service.rb +++ b/app/services/configuration/configuration_service.rb @@ -2,12 +2,53 @@ 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? - raise NotImplementedError + 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 diff --git a/app/services/configuration/env_configuration_service.rb b/app/services/configuration/env_configuration_service.rb new file mode 100644 index 000000000..24c61d9b0 --- /dev/null +++ b/app/services/configuration/env_configuration_service.rb @@ -0,0 +1,13 @@ +module Configuration + class EnvConfigurationService < ConfigurationService + private + + def config_present? + raise NotImplementedError + end + + def read_config + raise NotImplementedError + end + end +end diff --git a/app/services/configuration/paas_configuration_service.rb b/app/services/configuration/paas_configuration_service.rb index af7aee19e..afb53f500 100644 --- a/app/services/configuration/paas_configuration_service.rb +++ b/app/services/configuration/paas_configuration_service.rb @@ -1,28 +1,12 @@ module Configuration class PaasConfigurationService < ConfigurationService - def initialize(logger = Rails.logger) - super() - @logger = logger - @paas_config = read_pass_config - @s3_buckets = read_s3_buckets - @redis_uris = read_redis_uris - end - - def s3_config_present? - config_present? && @paas_config.key?(:"aws-s3-bucket") - end - - def redis_config_present? - config_present? && @paas_config.key?(:redis) - end - private def config_present? !ENV["VCAP_SERVICES"].nil? end - def read_pass_config + def read_config unless config_present? @logger.warn("Could not find VCAP_SERVICES in the environment!") return {} @@ -35,29 +19,5 @@ module Configuration {} end end - - def read_s3_buckets - return {} unless s3_config_present? - - s3_buckets = {} - @paas_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 = {} - @paas_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 diff --git a/spec/services/configuration/env_configuration_service_spec.rb b/spec/services/configuration/env_configuration_service_spec.rb new file mode 100644 index 000000000..85976dd61 --- /dev/null +++ b/spec/services/configuration/env_configuration_service_spec.rb @@ -0,0 +1,17 @@ +require "rails_helper" + +Rspec.describe Configuration::EnvConfigurationService do + before do + # Do nothing + end + + after do + # Do nothing + end + + context 'when condition' do + it 'succeeds' do + pending 'Not implemented' + end + end +end