api/v0: inline Random controller

This commit is contained in:
Lucas Gabriel Vuotto 2025-05-03 13:50:07 +00:00
parent fdb969de16
commit c5eef1be0b
4 changed files with 27 additions and 31 deletions

View file

@ -66,8 +66,8 @@ sub startup ($self)
$r->get("/tags")->to("tags#list")->name("list_tags");
$r->get("/search")->to("tags#search")->name("search_tags");
$r->get("/random/media")->to("random#media")->name("random_media");
$r->get("/random/tag")->to("random#tag")->name("random_tag");
$r->get("/random/media")->to("media#random")->name("random_media");
$r->get("/random/tag")->to("tags#random")->name("random_tag");
}
1;

View file

@ -85,6 +85,18 @@ sub show ($self)
});
}
sub random ($self)
{
my $id = $self->media_model->random_id;
return $self->render(
json => {error => "Media not found."},
status => 404,
) if !defined($id);
return $self->redirect_to("show_media", media_id => $id);
}
sub similar ($self)
{
my $media = $self->media_model->get($self->stash("media_id"))->single;

View file

@ -1,29 +0,0 @@
package Pooru::API::V0::Controller::Random;
use Mojo::Base "Mojolicious::Controller", -signatures;
sub media ($self)
{
my $media_id = $self->media_model->random_id;
return $self->render(
json => {error => "Media not found."},
status => 404,
) if !defined($media_id);
return $self->redirect_to("show_media", media_id => $media_id);
}
sub tag ($self)
{
my $tag_id = $self->tags_model->random_id;
return $self->render(
json => {error => "Tag not found."},
status => 404,
) if !defined($tag_id);
return $self->redirect_to(
$self->url_for("show_tag")->query(id => $tag_id));
}
1;

View file

@ -53,6 +53,19 @@ sub show ($self)
return $self->render(json => {tags => [@tags]});
}
sub random ($self)
{
my $id = $self->tags_model->random_id;
return $self->render(
json => {error => "Tag not found."},
status => 404,
) if !defined($id);
return $self->redirect_to(
$self->url_for("show_tag")->query(id => $id));
}
sub search ($self)
{
my $v = $self->validation;