api/v0: predefined searchs for Random controller

This commit is contained in:
Lucas Gabriel Vuotto 2025-04-29 21:27:17 +00:00
parent 4c476dfd3e
commit ce6635f1d9
3 changed files with 22 additions and 8 deletions

View file

@ -1,15 +1,9 @@
package Pooru::API::V0::Controller::Random; package Pooru::API::V0::Controller::Random;
use Mojo::Base "Mojolicious::Controller", -signatures; use Mojo::Base "Mojolicious::Controller", -signatures;
sub _random_entry ($self, $rs)
{
return $self->schema->resultset($rs)
->search(undef, {order_by => 'random()', rows => 1})->single;
}
sub media ($self) sub media ($self)
{ {
my $media = $self->_random_entry("Media"); my $media = $self->schema->resultset("Media")->random->single;
return $self->render( return $self->render(
json => {error => "Media not found."}, json => {error => "Media not found."},
@ -21,7 +15,7 @@ sub media ($self)
sub tag ($self) sub tag ($self)
{ {
my $tag = $self->_random_entry("Tag"); my $tag = $self->schema->resultset("Tag")->random->single;
return $self->render( return $self->render(
json => {error => "Tag not found."}, json => {error => "Tag not found."},

View file

@ -0,0 +1,10 @@
package Pooru::Schema::ResultSet::Media;
use v5.40;
use base "DBIx::Class::ResultSet";
sub random ($self, $rows = 1)
{
return $self->search(undef, {order_by => "random()", rows => $rows});
}
1;

View file

@ -0,0 +1,10 @@
package Pooru::Schema::ResultSet::Tag;
use v5.40;
use base "DBIx::Class::ResultSet";
sub random ($self, $rows = 1)
{
return $self->search(undef, {order_by => "random()", rows => $rows});
}
1;