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::Presentation - Presentation entity class

DESCRIPTION

This command uploads presentation files, such as Collaborate whiteboard files or Plan! files for use by your Collaborate sessions.

Once uploaded, you will need to "attach" the file to one or more Collaborate sessions using the Bb::Collaborate::V3::Session set_presentation() method.

PROPERTIES

presentationId (Int)

Identifier of the presentation file in the ELM repository.

description (Str)

A description of the presentation content.

size (Int)

The size of the presentation file (bytes), once uploaded to the ELM repository.

creatorId (Str)

The identifier of the owner of the presentation file.

filename (Str)

The name of the presentation file including the file extension.

Collaborate supports the following presentation file types:

  • Collaborate Whiteboard files: .wbd, .wbp

  • Collaborate Plan! files: .elp, .elpx.

Note: The filename must be less than 64 characters (including any file extensions)

METHODS

upload

Uploads content and creates a new presentation resource.

You can either upload a file:

    # 1. upload a local file
    my $presentation = Bb::Collaborate::V3::Presentation->upload('c:\\Documents\intro.wbd');
    $some_session->set_presentation( $presentation );

or source binary data for the presentation.

    # 2. source our own binary content
    open (my $fh, '<', $presentation_path)
        or die "unable to open $presentation_path: $!";
    $fh->binmode;

    my $content = do {local $/ = undef; <$fh>};
    die "no presentation data: $presentation_path"
        unless ($content);

    my $presentation = Bb::Collaborate::V3::Presentation->upload(
             {
                    filename => 'myplan.elpx',
                    creatorId =>  'bob',
                    content => $content,
             },
         );

    $some_session->set_presentation( $presentation );

list

    my $session_presentations = Bb::Collaborate::V3::Presentation->list(
                                   filter => {sessionId => $my_session}
                                );

Lists sessions. You will need to provide a filter that contains at least one of: creatorId, presentationId, description or sessionId.

delete

    $presentation->delete;

Deletes presentation content from the server and removes it from any associated sessions.