diff --git a/lib/Pooru/Site/Controller/Media.pm b/lib/Pooru/Site/Controller/Media.pm index a0619f0..802cf5d 100644 --- a/lib/Pooru/Site/Controller/Media.pm +++ b/lib/Pooru/Site/Controller/Media.pm @@ -62,20 +62,16 @@ sub show ($self) my $media_p = $self->ua->get_p($media_endpoint); my $similar_p = $self->ua->get_p($similar_endpoint); Mojo::Promise->all($media_p, $similar_p)->then(sub ($media, $similar) { + my ($media_tx, $similar_tx) = ($media->[0], $similar->[0]); + return $self->render( text => "Backend error.", status => 500, - ) if $media->[0]->error; + ) if $media_tx->error; - my $json = $media->[0]->res->json; - my @tags = map +{ - name => $_->{name}, - kind_id => $_->{kind_id}, - display => $_->{display}, - count => $_->{count}, - }, $json->{tags}->@*; + my $json = $media_tx->res->json; - if (!$similar->[0]->error) { + if (!$similar_tx->error) { my @similar_media = map +{ score => $_->{score}, show_media_url => $self->url_for("show_media", @@ -83,7 +79,8 @@ sub show ($self) ->query(tags => $tags), media_src => $self->url_for_file( $self->storage->get($_->{id})), - }, $similar->[0]->res->json->{media}->@*; + }, $similar_tx->res->json->{media}->@*; + $self->stash(similar_media => [@similar_media]); } @@ -98,7 +95,7 @@ sub show ($self) src => $self->url_for_file( $self->storage->get($json->{id})), }, - tags => [@tags], + tags => $json->{tags}, ); })->wait; }