summaryrefslogtreecommitdiff
path: root/lib/Travelynx/Helper
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-12-12 17:24:24 +0100
committerDaniel Friesel <derf@finalrewind.org>2021-12-12 17:24:24 +0100
commit879b3b38150960786341489a44609ac300725413 (patch)
treee2015ccfee8b5e60a1d24a7a2e24fd1e985f3310 /lib/Travelynx/Helper
parent7bb1f4fea0568a3964dcc4bf1ba793a6ccdc6338 (diff)
fix caching fuckup introduced in 2e5a1b0a79e3a54e159cf598b2a0d398109a7bf41.21.3
Diffstat (limited to 'lib/Travelynx/Helper')
-rw-r--r--lib/Travelynx/Helper/DBDB.pm22
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(