AXL-Client-Simple
view release on metacpan or search on metacpan
lib/AXL/Client/Simple/Phone.pm view on Meta::CPAN
package AXL::Client::Simple::Phone;
use Moose;
use AXL::Client::Simple::LineResultSet;
use Carp;
our $VERSION = '0.01';
$VERSION = eval $VERSION; # numify for warning-free dev releases
has client => (
is => 'ro',
isa => 'AXL::Client::Simple',
required => 1,
weak_ref => 1,
);
has stash => (
is => 'ro',
isa => 'HashRef',
required => 1,
);
has currentProfileName => (
is => 'ro',
isa => 'Str',
required => 0,
lazy_build => 1,
);
sub _build_currentProfileName { return (shift)->stash->{currentProfileName} }
has loginUserId => (
is => 'ro',
isa => 'Str',
required => 0,
lazy_build => 1,
);
sub _build_loginUserId { return (shift)->stash->{loginUserId} }
sub has_active_em {
my $self = shift;
return ($self->currentProfileName && $self->loginUserId);
}
has currentProfile => (
is => 'ro',
isa => 'AXL::Client::Simple::Phone',
lazy_build => 1,
);
sub _build_currentProfile {
my $self = shift;
return $self if not $self->has_active_em;
my $profile = $self->client->getDeviceProfile->(
profileName => $self->currentProfileName);
if (exists $profile->{'Fault'}) {
my $f = $profile->{'Fault'}->{'faultstring'};
croak "Fault status returned from server in _build_currentProfile: $f\n";
}
return AXL::Client::Simple::Phone->new({
client => $self->client,
stash => $profile->{'parameters'}->{'return'}->{'profile'},
});
}
( run in 1.709 second using v1.01-cache-2.11-cpan-98e64b0badf )