return $res if defined($res = $AC->serve_from_cache($type, $format, $id));
return Apache2::Const::NOT_FOUND unless $AC->lookups_enabled;
- my $keys = get_rec_keys($id);
- my @isbns = grep { $_->{tag} eq '020' } @$keys;
- my @upcs = grep { $_->{tag} eq '024' } @$keys;
-
- for my $key (@isbns, @upcs) {
-
- my $key_type = $key->{tag};
- my $key_value = $key->{value};
- $logger->info("AC: trying key $key_value : $key_type");
-
- try {
- $data = $handler->$method($key_value, $key_type);
- } catch Error with {
- $err = shift;
- decr_error_countdown();
- $logger->debug("added content handler failed: $method($id) => $err");
- };
-
- return Apache2::Const::NOT_FOUND if $err;
- next unless $data;
- }
+ my $key_data = get_rec_keys($id);
+ my @isbns = grep {$_->{tag} eq '020'} @$key_data;
+ my @upcs = grep {$_->{tag} eq '024'} @$key_data;
+
+ my $keys = {
+ isbn => [map {$_->{value}} @isbns],
+ upc => [map {$_->{value}} @upcs]
+ };
+
+ # TODO clean isbn
+
+ # XXX DEBUG
+ use OpenSRF::Utils::JSON;
+ $logger->info("Added Content Keys: " . OpenSRF::Utils::JSON->perl2JSON($keys));
+
+ try {
+ $data = $handler->$method($keys);
+ } catch Error with {
+ $err = shift;
+ decr_error_countdown();
+ $logger->debug("added content handler failed: $method($id) => $err");
+ };
+
+ return Apache2::Const::NOT_FOUND if $err;
+ next unless $data;
if(!$data) {
# if the AC lookup found no corresponding data, cache that information