diff --git a/lib/Pooru/API/V0/Controller/Random.pm b/lib/Pooru/API/V0/Controller/Random.pm index c3ad983..ec8c37d 100644 --- a/lib/Pooru/API/V0/Controller/Random.pm +++ b/lib/Pooru/API/V0/Controller/Random.pm @@ -1,15 +1,9 @@ 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"); + my $media = $self->schema->resultset("Media")->random->single; return $self->render( json => {error => "Media not found."}, @@ -21,7 +15,7 @@ sub media ($self) sub tag ($self) { - my $tag = $self->_random_entry("Tag"); + my $tag = $self->schema->resultset("Tag")->random->single; return $self->render( json => {error => "Tag not found."}, diff --git a/lib/Pooru/Schema/ResultSet/Media.pm b/lib/Pooru/Schema/ResultSet/Media.pm new file mode 100644 index 0000000..13f0770 --- /dev/null +++ b/lib/Pooru/Schema/ResultSet/Media.pm @@ -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; diff --git a/lib/Pooru/Schema/ResultSet/Tag.pm b/lib/Pooru/Schema/ResultSet/Tag.pm new file mode 100644 index 0000000..7b281fd --- /dev/null +++ b/lib/Pooru/Schema/ResultSet/Tag.pm @@ -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;