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
|
|
|