WWW-StreamSend
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/WWW/StreamSend.pm view on Meta::CPAN
package WWW::StreamSend;
use 5.010001;
use strict;
use warnings;
use AutoLoader qw(AUTOLOAD);
use LWP::UserAgent;
use XML::Simple;
use Carp ();
use WWW::StreamSend::Audience;
use WWW::StreamSend::Subscriber;
our $VERSION = '0.03';
sub new {
my ($class, $params) = @_;
Carp::croak("Options to WWW::StreamSend should be hash reference")
if ref($params) ne ref {};
my $self = {
login_id => $params->{login_id} || $params->{login},
key => $params->{key},
ua => LWP::UserAgent->new,
xs => XML::Simple->new,
};
$self->{ua}->agent("Mozilla/5.0");
bless $self => $class;
return $self;
}
sub get_emails {
my ($self) = @_;
my $res = $self->_send_request('emails');
return $res->{content};
}
sub get_subscribers {
my ($self, $params) = @_;
my $audience = $params->{audience};
my $id = $params->{subscriber_id};
# /audiences/1/people.xml
my $res = $self->_send_request('audiences', $audience.'/people/'.$id);
return $res->{content};
}
sub get_subscribers_count {
my ($self, $params) = @_;
my $type = $params->{type} || 'active'; # possible variations: 'inactive', 'unsubscribed', 'pending'
my $xmldata = $self->get_field({field => 'audiences', id => $params->{id}});
my $ref = $self->{xs}->XMLin($xmldata, ForceArray=>1);
return $ref->{audience}->[0]->{$type.'-people-count'}->[0]->{content};
}
sub get_field {
my ($self, $params) = @_;
my $accepted_fields = {
emails => 'emails',
users => 'users',
audiences => 'audiences',
};
my $res = (ref $params eq ref {}) ?
$self->_send_request($accepted_fields->{$params->{field}}, $params->{id}) :
$self->_send_request($accepted_fields->{$params});
return $res->{content};
}
sub get_people {
my ($self, $params) = @_;
}
sub get_audience {
my ($self, $params) = @_;
my $res = (exists $params->{id}) ?
$self->_send_request('audiences', $params->{id}) :
$self->_send_request('audiences');
if ($res->{code} == '200') {
my $xml = $res->{content};
my $data = XMLin($xml, ForceArray=>1);
if ($data->{type} || $data->{type} eq 'array') {
my @ret = ();
foreach my $item (@{$data->{audience}}) {
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.777 second using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )