1
0
mirror of https://github.com/dani/vroom.git synced 2024-06-01 21:11:41 +02:00

Cleanup get_room_by_id

This commit is contained in:
Daniel Berteaud 2014-10-14 22:38:34 +02:00
parent 907b17ade1
commit 2653bd6686

View File

@ -106,6 +106,15 @@ helper valid_room_name => sub {
return $ret;
};
# Check id arg is a valid ID number
helper valid_id => sub {
my $self = shift;
my ($id) = @_;
if ($id !~ m/^\d+$/){
return {msg => 'INVALID_ID'};
}
return {status => 1, msg => 'OK'};
};
##########################
# Various helpers #
@ -240,17 +249,30 @@ helper get_room_by_name => sub {
return $res;
};
# Get room param by ID instead of name
# Same as before, but take a room ID as argument
helper get_room_by_id => sub {
my $self = shift;
my ($id) = @_;
my $res = $self->valid_id($id);
if (!$res->{status}){
return $res;
}
my $sth = eval {
$self->db->prepare('SELECT *
FROM `rooms`
WHERE `id`=?');
} || return undef;
$sth->execute($id) || return undef;
return $sth->fetchall_hashref('id')->{$id};
};
if ($@){
return {msg => $@};
}
$sth->execute($id);
if ($sth->err){
return {msg => "DB Error: " . $sth->errstr . " (code " . $sth->err . ")"};
}
return {
status => 1,
data => $sth->fetchall_hashref('id')->{$id}
};
};
# Update a room, take a room object as a hashref
@ -1008,7 +1030,7 @@ get '/invitation' => sub {
# Delete expired invitation now
$self->delete_invitations;
my $invite = $self->get_invitation($inviteId);
my $room = $self->get_room_by_id($invite->{room_id});
my $room = $self->get_room_by_id($invite->{room_id})->{data};
if (!$invite || !$room){
return $self->render('error',
err => 'ERROR_INVITATION_INVALID',