Business-SiteCatalyst
view release on metacpan or search on metacpan
lib/Business/SiteCatalyst/Company.pm view on Meta::CPAN
use strict;
use warnings;
use Carp;
use Data::Dumper;
use Data::Validate::Type;
=head1 NAME
Business::SiteCatalyst::Company - Interface to Adobe Omniture SiteCatalyst's REST API 'Company' module.
=head1 VERSION
Version 1.2.2
=cut
our $VERSION = '1.2.2';
=head1 SYNOPSIS
This module allows you to interact with Adobe (formerly Omniture) SiteCatalyst,
a web analytics service. It encapsulates all the communications with the API
provided by Adobe SiteCatalyst to offer a Perl interface for managing reports,
pulling company-specific SiteCatalyst data (ex: token usage), uploading SAINT
data (feature not implemented yet), etc.
Please note that you will need to have purchased the Adobe SiteCatalyst product,
and have web services enabled within your account first in order to obtain a web
services shared secret, as well as agree with the Terms and Conditions for using
the API.
See SiteCatalyst API Explorer at
https://developer.omniture.com/en_US/get-started/api-explorer
for 'Company' module documentation
use Business::SiteCatalyst;
# Create an object to communicate with Adobe SiteCatalyst
my $site_catalyst = Business::SiteCatalyst->new(
username => 'dummyusername',
shared_secret => 'dummysecret',
api_subdomain => 'api|api2', #optional; default value='api'
);
my $company = $site_catalyst->instantiate_company();
my $token_data = $company->get_token_usage();
my $tokens_left = $company->get_token_count();
my $report_suites = $company->get_report_suites();
my $tracking_server = $company->get_tracking_server();
my $endpoint = $company->get_endpoint( company => $company );
my $queue_list = $company->get_queue();
my $success = $company->cancel_queue_item( queue_id => $queue_item_id );
my $version_list = $company->get_version_access();
=head1 METHODS
=head2 new()
Create a new Business::SiteCatalyst::Company object, which
will allow retrieval of SiteCatalyst company-specific info.
NOTE: -This should not be called directly-. Instead, use
C<Business::SiteCatalyst->instantiate_company()>.
my $company = Business::SiteCatalyst::Company->new(
$site_catalyst,
);
Parameters: none
=cut
sub new
{
my ( $class, $site_catalyst, %args ) = @_;
# Check for mandatory parameters
Data::Validate::Type::is_instance( $site_catalyst, class => 'Business::SiteCatalyst')
|| croak "First argument must be a Business::SiteCatalyst object";
# Create the object
my $self = bless(
{
site_catalyst => $site_catalyst,
},
$class,
);
return $self;
}
=head2 get_token_count()
Determine the number of tokens left for your company. You are alloted
10,000 tokens per month.
my $tokens_left = $company->get_token_count();
=cut
sub get_token_count
{
my ( $self, %args ) = @_;
my $site_catalyst = $self->get_site_catalyst();
lib/Business/SiteCatalyst/Company.pm view on Meta::CPAN
=head2 get_tracking_server()
Returns the tracking server and namespace for the specified report suite.
If report suite is not specified, 'report_suite_id' in SiteCatalystConfig
(if one exists) will be used.
my $tracking_server = $company->get_tracking_server();
my $tracking_server = $company->get_tracking_server(
report_suite_id => $report_suite_id
);
Optional parameters:
=over 4
=item * report_suite_id
The Report Suite ID you want to pull data from.
=back
=cut
sub get_tracking_server
{
my ( $self, %args ) = @_;
# If report suite was not specified as an argument, try to use value from config
if ( !defined $args{'report_suite_id'} || $args{'report_suite_id'} eq '' )
{
require SiteCatalystConfig;
my $config = SiteCatalystConfig->new();
if ( defined( $config ) && $config->{'report_suite_id'} ne '' )
{
$args{'report_suite_id'} = $config->{'report_suite_id'};
}
else
{
croak "Argument 'report_suite_id' is required because 'report_suite_id' is not specified in SiteCatalystConfig.pm"
if !defined( $args{'report_suite_id'} ) || ( $args{'report_suite_id'} eq '' );
}
}
my $site_catalyst = $self->get_site_catalyst();
my $response = $site_catalyst->send_request(
method => 'Company.GetTrackingServer',
data => { 'rsid' => $args{'report_suite_id'} }
);
if ( !defined($response) || !defined($response->{'tracking_server'}) )
{
croak "Fatal error. No response or missing tracking_server in response";
}
return $response->{'tracking_server'};
}
=head2 get_endpoint()
Retrieves the endpoint (API URL) for the specified company.
NOTE: You can specify any company, not just your own.
my $endpoint = $company->get_endpoint( company => $company );
Parameters:
=over 4
=item * company
The company whose endpoint you want to retrieve.
=back
=cut
sub get_endpoint
{
my ( $self, %args ) = @_;
croak "Argument 'company' is required"
if !defined( $args{'company'} ) || ( $args{'company'} eq '' );
my $site_catalyst = $self->get_site_catalyst();
my $response = $site_catalyst->send_request(
method => 'Company.GetEndpoint',
data => { 'company' => $args{'company'} }
);
if ( !defined($response) )
{
croak "Fatal error. No response.";
}
return $response;
}
=head2 get_queue()
Returns queued items that are pending approval for the requesting company.
my $queue_list = $company->get_queue();
=cut
sub get_queue
{
my ( $self, %args ) = @_;
my $site_catalyst = $self->get_site_catalyst();
my $response = $site_catalyst->send_request(
method => 'Company.GetQueue',
data => {'' => []}
);
if ( !defined($response) )
{
croak "Fatal error. No response.";
}
return $response;
}
=head2 cancel_queue_item()
Cancel a pending (queued) action that has yet to be approved.
my $success = $company->cancel_queue_item( queue_id => $queue_item_id );
Parameters:
=over 4
( run in 0.496 second using v1.01-cache-2.11-cpan-63c85eba8c4 )