API-BigBlueButton
view release on metacpan or search on metacpan
# NAME
API::BigBlueButton
# SYNOPSIS
use API::BigBlueButton;
my $bbb = API::BigBlueButton->new( server => 'bbb.myhost', secret => '1234567890' );
my $res = $bbb->get_version;
if ( $res->success ) {
my $version = $res->response->version
}
else {
warn "Error occured: " . $res->error . ", Status: " . $res->status;
}
# DESCRIPTION
- **new(%param)**
Constructor
%param:
server
Ip-address or hostname in which the server is located. Required parameter.
secret
Shared secret. Required parameter.
timeout
Connection timeout. Optional parameter.
use\_https
Use/not use https. Optional parameter.
# SEE ALSO
lib/API/BigBlueButton.pm view on Meta::CPAN
=encoding utf-8
=head1 NAME
API::BigBlueButton
=head1 SYNOPSIS
use API::BigBlueButton;
my $bbb = API::BigBlueButton->new( server => 'bbb.myhost', secret => '1234567890' );
my $res = $bbb->get_version;
if ( $res->success ) {
my $version = $res->response->version
}
else {
warn "Error occured: " . $res->error . ", Status: " . $res->status;
}
=head1 DESCRIPTION
lib/API/BigBlueButton.pm view on Meta::CPAN
use strict;
use warnings;
use Carp qw/ confess /;
use LWP::UserAgent;
use API::BigBlueButton::Response;
use base qw/ API::BigBlueButton::Requests /;
use constant REQUIRE_PARAMS => qw/ secret server /;
our $VERSION = "0.015";
=head1 VERSION
version 0.015
=cut
=head1 METHODS
lib/API/BigBlueButton.pm view on Meta::CPAN
=item B<new(%param)>
Constructor
%param:
server
Ip-address or hostname in which the server is located. Required parameter.
secret
Shared secret. Required parameter.
timeout
Connection timeout. Optional parameter.
use_https
Use/not use https. Optional parameter.
=cut
sub new {
my $class = shift;
$class = ref $class || $class;
my $self = {
timeout => 30,
secret => '',
server => '',
use_https => 0,
(@_),
};
for my $need_param ( REQUIRE_PARAMS ) {
confess "Parameter $need_param required!" unless $self->{ $need_param };
}
return bless $self, $class;
lib/API/BigBlueButton/Requests.pm view on Meta::CPAN
my $chksum = $self->generate_checksum( 'create', \%params );
=cut
sub generate_checksum {
my ( $self, $request, $params ) = @_;
my $string = $request;
$string .= $self->generate_url_query( $params ) if ( $params && ref $params );
$string .= $self->{secret};
return sha1_hex( $string );
}
=item B<generate_url_query($self,$params)>
Creating a query string
$params:
t/002_bigbluebutton.t view on Meta::CPAN
use FindBin qw/ $Bin /;
use lib "$Bin/../lib";
use_ok( 'API::BigBlueButton' );
describe "Constructor" => sub {
it "Normal creation" => sub {
my $bbb = API::BigBlueButton->new(
secret => 'mysecret',
server => 'myserver',
);
ok( $bbb );
is( $bbb->{server}, 'myserver' );
is( $bbb->{secret}, 'mysecret' );
};
it "Empty required params" => sub {
my $bbb;
eval { $bbb = API::BigBlueButton->new };
ok( $@ );
eval { $bbb = API::BigBlueButton->new( secret => 'mysecret' ) };
ok( $@ );
like( $@, qr/Parameter server required/ );
eval { $bbb = API::BigBlueButton->new( server => 'myserver' ) };
ok( $@ );
like( $@, qr/Parameter secret required/ );
};
};
describe "abstract_request" => sub {
my $checksum = '1233dfgdfg';
my $bbb;
before each => sub {
$bbb = API::BigBlueButton->new(
secret => 'mysecret',
server => 'myserver',
);
};
it "Without data" => sub {
my $url;
API::BigBlueButton->expects( 'request' )
->returns( sub { $url = $_[1]; return 1 } )->at_least(1);
my $res = $bbb->abstract_request( {
t/003_bigbluebutton_requests.t view on Meta::CPAN
use_ok( 'API::BigBlueButton' );
describe "Get version" => sub {
it "Normal run" => sub {
my $url;
API::BigBlueButton->expects( 'request' )
->returns( sub { $url = $_[1]; return 1; } )->at_least(1);
my $bbb = API::BigBlueButton->new(
secret => 'mysecret',
server => 'myserver',
);
ok( $bbb->get_version );
is( $url, 'http://myserver/bigbluebutton/api' );
};
};
describe "Other requests" => sub {
my ( $bbb, $url );
before all => sub {
$bbb = API::BigBlueButton->new(
secret => 'mysecret',
server => 'myserver',
);
};
before each => sub {
undef $url;
API::BigBlueButton->expects( 'request' )
->returns( sub { $url = $_[1]; return 1; } )->any_number;
};
( run in 1.869 second using v1.01-cache-2.11-cpan-39bf76dae61 )