diff options
author | Daniel Friesel <derf@finalrewind.org> | 2021-12-12 17:24:24 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2021-12-12 17:24:24 +0100 |
commit | 879b3b38150960786341489a44609ac300725413 (patch) | |
tree | e2015ccfee8b5e60a1d24a7a2e24fd1e985f3310 | |
parent | 7bb1f4fea0568a3964dcc4bf1ba793a6ccdc6338 (diff) |
fix caching fuckup introduced in 2e5a1b0a79e3a54e159cf598b2a0d398109a7bf41.21.3
-rw-r--r-- | lib/Travelynx/Helper/DBDB.pm | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/lib/Travelynx/Helper/DBDB.pm b/lib/Travelynx/Helper/DBDB.pm index fbee1b9..f78f9ec 100644 --- a/lib/Travelynx/Helper/DBDB.pm +++ b/lib/Travelynx/Helper/DBDB.pm @@ -34,7 +34,7 @@ sub has_wagonorder_p { my $cache = $self->{cache}; my $promise = Mojo::Promise->new; - if ( my $content = $cache->get($url) ) { + if ( my $content = $cache->get("HEAD $url") ) { if ( $content eq 'n' ) { return $promise->reject; } @@ -48,18 +48,18 @@ sub has_wagonorder_p { sub { my ($tx) = @_; if ( $tx->result->is_success ) { - $cache->set( $url, 'a' ); + $cache->set( "HEAD $url", 'a' ); $promise->resolve('a'); } else { - $cache->set( $url, 'n' ); + $cache->set( "HEAD $url", 'n' ); $promise->reject; } return; } )->catch( sub { - $cache->set( $url, 'n' ); + $cache->set( "HEAD $url", 'n' ); $promise->reject; return; } @@ -90,11 +90,17 @@ sub get_wagonorder_p { ->then( sub { my ($tx) = @_; - my $body = decode( 'utf-8', $tx->res->body ); - my $json = JSON->new->decode($body); - $cache->freeze( $url, $json ); - $promise->resolve($json); + if ( $tx->result->is_success ) { + my $body = decode( 'utf-8', $tx->res->body ); + my $json = JSON->new->decode($body); + $cache->freeze( $url, $json ); + $promise->resolve($json); + } + else { + my $code = $tx->code; + $promise->reject("HTTP ${code}"); + } return; } )->catch( |