From c5eef1be0b2972ec0eccb802681883f3d037b485 Mon Sep 17 00:00:00 2001 From: Lucas Gabriel Vuotto Date: Sat, 3 May 2025 13:50:07 +0000 Subject: [PATCH] api/v0: inline Random controller --- lib/Pooru/API/V0.pm | 4 ++-- lib/Pooru/API/V0/Controller/Media.pm | 12 +++++++++++ lib/Pooru/API/V0/Controller/Random.pm | 29 --------------------------- lib/Pooru/API/V0/Controller/Tags.pm | 13 ++++++++++++ 4 files changed, 27 insertions(+), 31 deletions(-) delete mode 100644 lib/Pooru/API/V0/Controller/Random.pm diff --git a/lib/Pooru/API/V0.pm b/lib/Pooru/API/V0.pm index ba3dbcc..24d53c7 100644 --- a/lib/Pooru/API/V0.pm +++ b/lib/Pooru/API/V0.pm @@ -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; diff --git a/lib/Pooru/API/V0/Controller/Media.pm b/lib/Pooru/API/V0/Controller/Media.pm index 741bb23..75a6b58 100644 --- a/lib/Pooru/API/V0/Controller/Media.pm +++ b/lib/Pooru/API/V0/Controller/Media.pm @@ -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; diff --git a/lib/Pooru/API/V0/Controller/Random.pm b/lib/Pooru/API/V0/Controller/Random.pm deleted file mode 100644 index 2ac42fe..0000000 --- a/lib/Pooru/API/V0/Controller/Random.pm +++ /dev/null @@ -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; diff --git a/lib/Pooru/API/V0/Controller/Tags.pm b/lib/Pooru/API/V0/Controller/Tags.pm index 6f7c278..9ccfcb1 100644 --- a/lib/Pooru/API/V0/Controller/Tags.pm +++ b/lib/Pooru/API/V0/Controller/Tags.pm @@ -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;