API-BigBlueButton

 view release on metacpan or  search on metacpan

lib/API/BigBlueButton/Requests.pm  view on Meta::CPAN


SEE MORE L<https://code.google.com/p/bigbluebutton/wiki/API#getDefaultConfigXML>

=cut

sub getdefaultconfigxml {
    my ( $self ) = @_;

    my $data = $self->_generate_data( 'getDefaultConfigXML' );
    return $self->abstract_request( $data );
}

=item B<setconfigxml($self,%params)>

Associate an custom config.xml file with the current session.

%params:

meetingID

    This parameter is mandatory.
    A meetingID to an active meeting.

configXML

    This parameter is mandatory.
    A valid config.xml file

SEE MORE L<https://code.google.com/p/bigbluebutton/wiki/API#setConfigXML>

=cut

sub setconfigxml {
    my ( $self, %params ) = @_;

    my $data = $self->_generate_data( 'setConfigXML', \%params );
    return $self->abstract_request( $data );
}

=item B<generate_checksum($self,$request,$params)>

Create a checksum for the query

$request

    Name of query, e.g. 'create' or 'join'

$params:

    Query parameters

    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:

    Query parameters

    $params{checksum} = $self->generate_checksum( 'create', \%params );
    $params{request}  = 'create';
    my $url = $self->generate_url_query( \%params );

=cut

sub generate_url_query {
    my ( $self, $params ) = @_;

    my $string = CORE::join( '&', map { "$_=$params->{$_}" } sort keys %{ $params } );

    return $string;
}

sub _generate_data {
    my ( $self, $request, $params ) = @_;

    $self->_check_params( $request, $params ) if $params;
    $params->{checksum} = $self->generate_checksum( $request, $params );
    $params->{request}  = $request;

    return $params;
}

sub _check_params {
    my ( $self, $request, $params ) = @_;

    my $const = 'REQUIRE_' . uc $request . '_PARAMS';
    return unless $self->can( $const );

    for my $req_param ( @{ $self->$const } ) {
        confess "Parameter $req_param required!" unless $params->{ $req_param };
    }

    return 1;
}

=back

=head1 SEE ALSO

L<API::BigBlueButton>

L<API::BigBlueButton::Response>

L<BigBlueButton API|https://code.google.com/p/bigbluebutton/wiki/API>

=head1 AUTHOR



( run in 0.503 second using v1.01-cache-2.11-cpan-39bf76dae61 )