The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Bb::Collaborate::Ultra::Session

DESCRIPTION

This class is used to manage Sessions (Virtual Classrooms).

    use Bb::Collaborate::Ultra::Session;
    my $start = time() + 60;
    my $end = $start + 900;

    my $session;
    my $session = Bb::Collaborate::Ultra::Session->post($connection, {
            name => 'Test Session',
            startTime => $start,
            endTime   => $end,
            },
        );

Enrolling User in Sessions

AFAIK, there are two classes and two different modes for enrolling user to sessions:

(*) Ad-hoc users via Bb::Collaborate::Ultra::LaunchContext
    my $user = Bb::Collaborate::Ultra::User->new({
        extId => 'testLaunchUser',
        displayName => 'David Warring',
        email => 'david.warring@gmail.com',
        firstName => 'David',
        lastName => 'Warring',
    });

    my $launch_context = Bb::Collaborate::Ultra::LaunchContext->new({ launchingRole => 'moderator',
         editingPermission => 'writer',
         user => $user,
         });

    my $join_url = $launch_context->join_session($session);
(*) Permanently managed users via Bb::Collaborate::Ultra::LaunchContext

Each user is created once.

    my $ultra_user = Bb::Collaborate::Ultra::User->create($connection, {
        extId => 'testLaunchUser',
        displayName => 'David Warring',
        email => 'david.warring@gmail.com',
        firstName => 'David',
        lastName => 'Warring',
    });
    my $ultra_user_id = $ultra_user->id;
    # somehow save the user id permanently...

The saved user-id may then be used to multiple times to join sessions:

     my $enrollment =  Bb::Collaborate::Ultra::Session::Enrollment->new({ launchingRole => 'moderator',
         editingPermission => 'writer',
         userId => $user2->id,
         });
      my $join_url = $enrolment->enrol($session)->permanentUrl;

METHODS

This class supports the `get`, `post`, `patch` and `del` methods as described in https://xx-csa.bbcollab.com/documentation#Session

get_enrollments

Return a list of users, of type Bb::Collaborate::Ultra::Session::Enrollment.

    my @enrollments = $session->get_enrollments;
    for my $enrolment (@enrollments) {
        say "user @{[$enrolment->userId]} is enrolled as a @{[$enrollment->launchingRole]}";
    }

get_logs

Returns logging (session-instance) information for completed sessions