site: use promise interfaces for Mojo::UserAgent

This commit is contained in:
Lucas Gabriel Vuotto 2025-04-26 17:16:39 +00:00
parent 1a0a224edc
commit e178a261e6
3 changed files with 11 additions and 10 deletions

View file

@ -21,7 +21,7 @@ sub list ($self)
my $endpoint = $self->api_v0_url->path("media")
->query(page => $page, tags => $tags);
$self->ua->get($endpoint, sub ($ua, $tx) {
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
@ -34,12 +34,13 @@ sub list ($self)
media_src => $self->url_for_file(
$self->storage->get($_->{id})),
}, $json->{media}->@*;
$self->stash(pager => $json->{pager});
return $self->render(
template => "gallery",
media => [@media],
);
});
})->wait;
}
sub show ($self)
@ -57,7 +58,7 @@ sub show ($self)
my $endpoint = $self->api_v0_url->path("media/$media_id")
->query(page => $page);
$self->ua->get($endpoint, sub ($ua, $tx) {
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
@ -84,7 +85,7 @@ sub show ($self)
},
tags => [@tags],
);
});
})->wait;
}
1;

View file

@ -6,7 +6,7 @@ sub media ($self)
$self->render_later;
my $endpoint = $self->api_v0_url->path("random/media");
$self->ua->get($endpoint, sub ($ua, $tx) {
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
@ -14,7 +14,7 @@ sub media ($self)
return $self->redirect_to("show_media",
media_id => $tx->res->json->{id});
});
})->wait;
}
sub tag ($self)
@ -22,7 +22,7 @@ sub tag ($self)
$self->render_later;
my $endpoint = $self->api_v0_url->path("random/tag");
$self->ua->get($endpoint, sub ($ua, $tx) {
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
@ -32,7 +32,7 @@ sub tag ($self)
my $url = $self->url_for("list_media")
->query(tags => $tags[int(rand(@tags))]->{display});
return $self->redirect_to($url);
});
})->wait;
}
1;

View file

@ -13,7 +13,7 @@ sub list ($self)
$self->render_later;
my $endpoint = $self->api_v0_url->path("tags")->query(page => $page);
$self->ua->get($endpoint, sub ($ua, $tx) {
$self->ua->get_p($endpoint)->then(sub ($tx) {
return $self->render(
text => "Backend error.",
status => 500,
@ -32,7 +32,7 @@ sub list ($self)
template => "tags",
tags => [@tags],
);
});
})->wait;
}
1;