Browse Source

Refactor configuration service

pull/835/head
Stéphane Meny 3 years ago
parent
commit
0ad76a445d
No known key found for this signature in database
GPG Key ID: 9D0AFEA988527923
  1. 43
      app/services/configuration/configuration_service.rb
  2. 13
      app/services/configuration/env_configuration_service.rb
  3. 42
      app/services/configuration/paas_configuration_service.rb
  4. 17
      spec/services/configuration/env_configuration_service_spec.rb

43
app/services/configuration/configuration_service.rb

@ -2,12 +2,53 @@ module Configuration
class ConfigurationService class ConfigurationService
attr_reader :s3_buckets, :redis_uris 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? def s3_config_present?
raise NotImplementedError config_present? && @config.key?(:"aws-s3-bucket")
end end
def redis_config_present? def redis_config_present?
config_present? && @config.key?(:redis)
end
private
def config_present?
raise NotImplementedError raise NotImplementedError
end 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
end end

13
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

42
app/services/configuration/paas_configuration_service.rb

@ -1,28 +1,12 @@
module Configuration module Configuration
class PaasConfigurationService < ConfigurationService 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 private
def config_present? def config_present?
!ENV["VCAP_SERVICES"].nil? !ENV["VCAP_SERVICES"].nil?
end end
def read_pass_config def read_config
unless config_present? unless config_present?
@logger.warn("Could not find VCAP_SERVICES in the environment!") @logger.warn("Could not find VCAP_SERVICES in the environment!")
return {} return {}
@ -35,29 +19,5 @@ module Configuration
{} {}
end end
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
end end

17
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
Loading…
Cancel
Save