35 lines
733 B
Perl
35 lines
733 B
Perl
package Pooru::API::V0::Controller::Random;
|
|
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)
|
|
{
|
|
my $media = $self->_random_entry("Media");
|
|
|
|
return $self->render(
|
|
json => {error => "Media not found."},
|
|
status => 404,
|
|
) if !defined($media);
|
|
|
|
return $self->redirect_to("show_media", media_id => $media->id);
|
|
}
|
|
|
|
sub tag ($self)
|
|
{
|
|
my $tag = $self->_random_entry("Tag");
|
|
|
|
return $self->render(
|
|
json => {error => "Tag not found."},
|
|
status => 404,
|
|
) if !defined($tag);
|
|
|
|
return $self->redirect_to(
|
|
$self->url_for("show_tag")->query(id => $tag->id));
|
|
}
|
|
|
|
1;
|