From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

sub add {
my $c = shift->openapi->valid_input or return;
my $room = $c->req->json;
return add_with_json($c, $room, "rooms", $c->openapi->spec('/components/schemas/Room/properties'));
}
sub update {
my $c = shift->openapi->valid_input or return;
my $roomId = $c->param('roomId');
my $room = $c->req->json;
$room->{id} = $roomId;
return update_with_json($c, $room, "rooms", $c->openapi->spec('/components/schemas/Room/properties'));
}
sub getById {
my $c = shift->openapi->valid_input or return;
my $roomId = $c->param('roomId');
my $room = db_query($c->dbh, "SELECT rooms.* FROM rooms WHERE id = ?", $roomId);
if(scalar(@$room) < 1) {
$c->render(openapi => { errors => [ { message => "not found" } ]}, status => 404);
return;
}
$c->render(openapi => $room->[0]);
}
sub delete {
my $c = shift->openapi->valid_input or return;
my $roomId = $c->param("roomId");
return delete_with_query($c, "DELETE FROM rooms WHERE id = ? RETURNING id", $roomId);
}
sub list {
my $c = shift->openapi->valid_input or return;
my $rooms = db_query($c->dbh, "SELECT rooms.* FROM rooms");
$c->render(openapi => $rooms);
}
1;