diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2015-06-06 21:30:45 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2015-06-06 21:30:45 +0200 | 
| commit | 13f462df94edcdb87058e4939181dc416f1a6c1a (patch) | |
| tree | 00bc885e7afa04eb3eb3071c13bc10443d7f532c | |
| parent | 1725719f07c99e7de67fa6b2981d060c1a385d81 (diff) | |
make cache data easier to extend
| -rw-r--r-- | index.pl | 26 | 
1 files changed, 17 insertions, 9 deletions
| @@ -30,9 +30,9 @@ sub get_results_for {  	my $cache_str = "${backend}_${cstation}"; -	my $results = $cache->thaw($cache_str); +	my $data = $cache->thaw($cache_str); -	if ( not $results ) { +	if ( not $data ) {  		if ( $backend eq 'iris' ) {  			# requests with DS100 codes should be preferred (they avoid @@ -49,20 +49,26 @@ sub get_results_for {  				serializable => 1,  				%opt  			); -			$results = [ [ $status->results ], $status->errstr ]; -			$cache->freeze( $cache_str, $results ); +			$data = { +				results => [ $status->results ], +				errstr  => $status->errstr, +			}; +			$cache->freeze( $cache_str, $data );  		}  		else {  			my $status = Travel::Status::DE::DeutscheBahn->new(  				station => $station,  				%opt  			); -			$results = [ [ $status->results ], $status->errstr ]; -			$cache->freeze( $cache_str, $results ); +			$data = { +				results => [ $status->results ], +				errstr  => $status->errstr, +			}; +			$cache->freeze( $cache_str, $data );  		}  	} -	return @{$results}; +	return $data;  }  helper 'is_important' => sub { @@ -182,8 +188,10 @@ sub handle_request {  	}  	my @departures; -	my ( $results_ref, $errstr ) = get_results_for( $backend, $station, %opt ); -	my @results = @{$results_ref}; +	my $data        = get_results_for( $backend, $station, %opt ); +	my $results_ref = $data->{results}; +	my $errstr      = $data->{errstr}; +	my @results     = @{$results_ref};  	if ( not @results and $template ~~ [qw[json marudor_v1 marudor]] ) {  		$self->res->headers->access_control_allow_origin('*'); | 
