The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bb::Collaborate::V3 - Perl bindings for the Blackboard Collaborate Standard Bridge (V3)

VERSION

Version 0.07

DESCRIPTION

Blackboard Collaborate is software for virtual online classrooms. It is suitable for meetings, demonstrations web conferences, seminars, general training and support.

Bb-Collaborate-V3 is a set of Perl bindings and entity definitions for the Collaborate V3 SOAP services, both on SAS (externally hosted) and ELM (self hosted) servers.

EXAMPLE

    use Bb::Collaborate::V3;
    use Bb::Collaborate::V3::Session;
    use Elive::Util;

    my $connection = Bb::Collaborate::V3->connect(
                                'http://myserver/mysite',
                                'some_user' => 'some_pass' );

    # Sessions must start and end on the quarter hour.

    my $session_start = Elive::Util::next_quarter_hour();
    my $session_end = Elive::Util::next_quarter_hour( $session_start );

    my %session_data = (
        sessionName   => 'My Demo Session',
        creatorId     => $connection->user,
        startTime     => $session_start . '000',
        endTime       => $session_end . '000',
        openChair     => 1,
        mustBeSupervised => 0,
        permissionsOn => 1,
        nonChairList  => [qw(alice bob)],
        groupingList  => [qw(mechanics sewing)],
    );

    my $session = Bb::Collaborate::V3::Session->insert(\%session_data);

    my $url = $session->session_url( userId => 'bob', displayName => 'Robert');
    print "bob's session link is: $url\n";

DESCRIPTION

Implements Blackboard Collaborate Standard Bridge V3 API bindings

METHODS

data_classes

returns a list of all implemented entity classes

connect

     use Bb::Collaborate::V3;
     use Bb::Collaborate::V3::Connection;

     #
     # Setup the default connection
     Bb::Collaborate::V3->connect('http://myServer.com/test1', 'user1', 'pass1');
     my $c1 = Bb::Collaborate::V3->connection;
     #
     # Setup a secondary connection
     my $c2 = Bb::Collaborate::V3::Connection->connect('http://user2:pass2@myServer.com/test2');

Connects to a server instance. Dies if the connection could not be established. If, for example, the SOAP connection or authentication failed.

See also Bb::Collaborate::V3::Connection.

connection

     $e1 = Bb::Collaborate::V3->connection
         or warn 'no elive connection active';

Returns the default Elive connection handle.

update

Abstract method to commit outstanding object updates to the server.

    $obj->{foo} = 'Foo';  # change foo attribute directly
    $foo->update;         # save

    $obj->bar('Bar');     # change bar via its accessor
    $obj->update;         # save

Updates may also be passed as parameters.

   # change and save foo and bar. All in one go.
    $obj->update({foo => 'Foo', bar => 'Bar'});

update can also be called as a class-level method. The primary key and all other required fields must be specified.

   my $obj = Bb::Collaborate::V3::Session->update({sessionId => 123456,
                                                   startTime => '1448922188000',
                                                   ... });

insert

Abstract method to create new entity instances on the server:

    my $multimedia = Bb::Collaborate::V3::Multimedia->insert(
             {
                    filename => 'demo.wav',
                    creatorId =>  'bob',
                    content => $content,
             },
         );

list

Abstract selection method. Most commands allow a ranging expression to narrow the selection. This is passed in using the filter option. For example:

    my $bobs_sessions = Bb::Collaborate::V3::Session->list( filter => {userId => 'bob'});

delete

Abstract method to delete entities:

    $multimedia->delete;

SEE ALSO

Bb::Collaborate::V3::Connection Bb::Collaborate::V3::Multimedia Bb::Collaborate::V3::Session Bb::Collaborate::V3::Session::Attendance Bb::Collaborate::V3::Session::Telephony Bb::Collaborate::V3::Presentation Bb::Collaborate::V3::SchedulingManager Bb::Collaborate::V3::Server::Configuration Bb::Collaborate::V3::Server::Version Bb::Collaborate::V3::Recording

AUTHOR

David Warring, <david.warring at gmail.com>

BUGS

Please report any bugs or feature requests to bug-bb-Collaborate-V3 at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Bb-Collaborate-V3. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Bb::Collaborate::V3

You can also look for information at:

REFERENCES

Standard Integration API Guide V3.2 for SAS.DocRev3.pdf - the main reference used in the construction of this module.
Standard Integration API Guide V3 for ELM.pdf - supplementry information on the ELM specific adapator for V3.

LICENSE AND COPYRIGHT

Copyright 2012-2015 David Warring.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.