Use a helper to create etherpad group and pad

master
Daniel Berteaud 11 years ago
parent 3c0fd60be5
commit 31fca2b4ef
  1. 33
      public/vroom.pl

@ -202,12 +202,7 @@ helper create_room => sub {
$self->app->log->info("Room $name created by " . $self->session('name')); $self->app->log->info("Room $name created by " . $self->session('name'));
# therpad integration ? # therpad integration ?
if ($ec){ if ($ec){
my $group = $ec->create_group() || undef; $self->create_pad($name);
return undef unless ($group);
$sth = eval { $self->db->prepare("UPDATE `rooms` SET `etherpad_group`=? WHERE `name`='$name';") } || return undef;
$sth->execute($group);
$ec->create_group_pad($group,$name) || return undef;
$self->app->log->debug("Etherpad group $group created for room $name");
} }
return 1; return 1;
}; };
@ -611,6 +606,25 @@ helper check_invite_token => sub {
return $ret; return $ret;
}; };
# Create a pad (and the group if needed)
helper create_pad => sub {
my $self = shift;
my ($room) = @_;
return undef unless ($ec);
my $data = $self->get_room($room);
return undef unless ($data);
if (!$data->{etherpad_group}){
my $group = $ec->create_group() || undef;
return undef unless ($group);
my $sth = eval { $self->db->prepare("UPDATE `rooms` SET `etherpad_group`=? WHERE `name`='$room';") } || return undef;
$sth->execute($group) || return undef;
$data = $self->get_room($room);
}
$ec->create_group_pad($data->{etherpad_group},$room) || return undef;
$self->app->log->debug("Pad for room $room created (group " . $data->{etherpad_group} . ")");
return 1;
};
# Route / to the index page # Route / to the index page
any '/' => sub { any '/' => sub {
my $self = shift; my $self = shift;
@ -862,12 +876,7 @@ get '/(*room)' => sub {
if ($ec && !$self->session($room)->{etherpadSession}){ if ($ec && !$self->session($room)->{etherpadSession}){
# pad doesn't exist yet ? # pad doesn't exist yet ?
if (!$data->{etherpad_group}){ if (!$data->{etherpad_group}){
my $group = $ec->create_group() || undef; $self->create_pad($room);
return undef unless ($group);
my $sth = eval { $self->db->prepare("UPDATE `rooms` SET `etherpad_group`=? WHERE `name`='$room';") } || return undef;
$sth->execute($group);
$ec->create_group_pad($group,$room) || return undef;
$self->app->log->debug("Etherpad group $group created for room $room");
} }
my $id = $ec->create_author_if_not_exists_for($self->session('name')); my $id = $ec->create_author_if_not_exists_for($self->session('name'));
$self->session($room)->{etherpadAuthorId} = $id; $self->session($room)->{etherpadAuthorId} = $id;

Loading…
Cancel
Save