fix: prevent double-rendering in async route handlers
This commit is contained in:
@@ -38,11 +38,13 @@ sub startup {
|
||||
$c->render_later;
|
||||
$c->db->ping->then(
|
||||
sub {
|
||||
return if $c->stash->{rendered};
|
||||
$c->render( json => { status => 'ok' } );
|
||||
}
|
||||
)->catch(
|
||||
sub {
|
||||
my $err = shift;
|
||||
return if $c->stash->{rendered};
|
||||
$c->app->log->error("Health check DB error: $err");
|
||||
$c->render(
|
||||
json => {
|
||||
@@ -98,9 +100,10 @@ sub startup {
|
||||
return;
|
||||
}
|
||||
|
||||
$url_service->get_original_url($short_code)->then(
|
||||
return $url_service->get_original_url($short_code)->then(
|
||||
sub {
|
||||
my $original_url = shift;
|
||||
return if $c->stash->{rendered};
|
||||
if ($original_url) {
|
||||
$c->redirect_to($original_url);
|
||||
}
|
||||
@@ -114,6 +117,7 @@ sub startup {
|
||||
)->catch(
|
||||
sub {
|
||||
my $err = shift;
|
||||
return if $c->stash->{rendered};
|
||||
$c->app->log->error("Redirect lookup error: $err");
|
||||
$c->render(
|
||||
json => { error => 'Internal server error' },
|
||||
|
||||
Reference in New Issue
Block a user