Amp-Client
view release on metacpan or search on metacpan
lib/Amp/Config.pm view on Meta::CPAN
package Amp::Config;
use Moo;
use JSON::Parse ':all';
use Amp::Util::Strings;
use Amp::DbPoolClient;
use Data::Dumper;
use feature 'say';
has file => (is => 'rw');
has dbsvc => (is => 'ro', default => "http://dashboard-m1.shr.oclc.org");
has _config => (is => 'rw', default => sub {{}});
sub BUILD {
die("Missing AMP_CONFIG environment variable") if !$ENV{AMP_CONFIG};
die("Missing AMP_API_KEY environment variable") if !$ENV{AMP_API_KEY};
}
sub key {
return $ENV{AMP_API_KEY};
}
sub environments {
my $self = shift;
return $self->_settings->{environments};
}
sub _settings {
my $self = shift;
my $config = read_json($ENV{AMP_CONFIG});
if (!$self->_config->{environments}) {
$self->_loadEnvConfig($config);
}
return $self->_config;
}
sub _loadEnvConfig {
my $self = shift;
my $config = shift;
if (!$config->{environments}) {
my $client = Amp::DbPoolClient->new(
host => $self->dbsvc,
key => $config->{key}
);
my $environments = $client->getEnvConfig;
$config->{environments} = $environments;
}
$self->_config($config);
}
sub getEnvHash {
my $self = shift;
my $environments = $self->environments;
my $hash;
for my $env (@{$environments}) {
$hash->{$env->{id}} = $env->{url};
}
return $hash;
}
sub getEnv {
my $self = shift;
( run in 1.608 second using v1.01-cache-2.11-cpan-39bf76dae61 )