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