use MIME::Base64;
use Business::ISBN;
+use Business::ISSN;
my $AC = __PACKAGE__;
} else {
my $key_data = get_rec_keys($keyvalue);
my @isbns = grep {$_->{tag} eq '020'} @$key_data;
- my @upcs = grep {$_->{tag} eq '024'} @$key_data;
+ my @issns = grep {$_->{tag} eq '022'} @$key_data;
+ my @upcs = grep {$_->{tag} eq '024'} @$key_data;
map {
my $isbn_obj = Business::ISBN->new($_->{value});
undef $_ if !defined($_->{value});
} @isbns;
+ map {
+ my $issn_obj = Business::ISSN->new($_->{value});
+ my $issn_str;
+ $issn_str = $issn_obj->as_string() if defined($issn_obj && $issn_obj->is_valid);
+ $_->{value} = $issn_str;
+ undef $_ if !defined($_->{value});
+ } @issns;
+
$keyhash = {
isbn => [map {$_->{value}} @isbns],
- upc => [map {$_->{value}} @upcs]
+ issn => [map {$_->{value}} @issns],
+ upc => [map {$_->{value}} @upcs]
};
}
- return Apache2::Const::NOT_FOUND unless @{$keyhash->{isbn}} || @{$keyhash->{upc}};
+ return Apache2::Const::NOT_FOUND unless @{$keyhash->{isbn}} || @{$keyhash->{issn}} || @{$keyhash->{upc}};
try {
if ($handler->can('expects_keyhash') && $handler->expects_keyhash() eq 1) {
]
}, {
'-and' => [
+ {tag => '022'},
+ {subfield => 'a'}
+ ]
+ }, {
+ '-and' => [
{tag => '024'},
{subfield => 'a'},
{ind1 => 1}