Submit social housing lettings and sales data (CORE)
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.
 
 
 
 

37 lines
997 B

module Configuration
class EnvConfigurationService < ConfigurationService
private
def config_present?
!ENV["S3_CONFIG"].nil? || !ENV["REDIS_CONFIG"].nil?
end
def read_config
unless config_present?
@logger.warn("Could not find S3_CONFIG or REDIS_CONFIG in the environment variables!")
return {}
end
config = {}
assign_config(config, :"aws-s3-bucket", "S3_CONFIG")
assign_config(config, :redis, "REDIS_CONFIG")
config
end
def assign_config(config, symbol, env_variable)
config_hash = parse_json_config(env_variable)
config[symbol] = config_hash unless config_hash.empty?
end
def parse_json_config(env_variable_name)
if ENV[env_variable_name].present?
begin
return JSON.parse(ENV[env_variable_name], { symbolize_names: true })
rescue StandardError
@logger.warn("Could not parse #{env_variable_name}!")
end
end
{}
end
end
end