push full set of isbns and upcs down to handler code
authorBill Erickson <berick@esilibrary.com>
Wed, 27 Apr 2011 16:14:00 +0000 (12:14 -0400)
committerJeff Godin <jgodin@tadl.org>
Sat, 28 Apr 2012 14:09:04 +0000 (10:09 -0400)
Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent.pm

index 5e9c2bf..6d94135 100644 (file)
@@ -97,27 +97,31 @@ sub handler {
     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