Bug 32336: (QA follow-up) Use $metadata->schema
[srvgit] / catalogue / image.pl
index ff74cbe..62e1ebb 100755 (executable)
@@ -7,33 +7,33 @@
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 #
 #
 #
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use CGI;    #qw(:standard escapeHTML);
+use CGI qw ( -utf8 );    #qw(:standard escapeHTML);
 use C4::Context;
-use C4::Images;
+use Koha::CoverImages;
+use Koha::Biblios;
+use Koha::Exceptions;
 
 $| = 1;
 
-my $DEBUG = 0;
-my $data  = new CGI;
+my $data  = CGI->new;
 my $imagenumber;
 
 =head1 NAME
@@ -58,43 +58,36 @@ imagenumber, a random image is selected.
 
 =cut
 
-my ( $image, $mimetype ) = C4::Images->NoImage;
+my ( $image );
 if ( C4::Context->preference("LocalCoverImages") ) {
-    if ( defined $data->param('imagenumber') ) {
+    my $imagenumber = $data->param('imagenumber');
+    my $biblionumber = $data->param('biblionumber');
+    if ( defined $imagenumber ) {
         $imagenumber = $data->param('imagenumber');
+        $image = Koha::CoverImages->find($imagenumber);
     }
-    elsif ( defined $data->param('biblionumber') ) {
-        my @imagenumbers = ListImagesForBiblio( $data->param('biblionumber') );
-        if (@imagenumbers) {
-            $imagenumber = $imagenumbers[0];
-        }
-        else {
-            warn "No images for this biblio" if $DEBUG;
-        }
-    }
-    else {
-        $imagenumber = shift;
-    }
-
-    if ($imagenumber) {
-        warn "imagenumber passed in: $imagenumber" if $DEBUG;
-        my $imagedata = RetrieveImage($imagenumber);
-        if ($imagedata) {
-            if ( $data->param('thumbnail') ) {
-                $image = $imagedata->{'thumbnail'};
-            }
-            else {
-                $image = $imagedata->{'imagefile'};
-            }
-            $mimetype = $imagedata->{'mimetype'};
+    elsif ( defined $biblionumber ) {
+        my $biblio = Koha::Biblios->find($biblionumber);
+        Koha::Exceptions::ObjectNotFound->throw( 'No bibliographic record for biblionumber ' . $biblionumber ) unless $biblio;
+        my $cover_images = $biblio->cover_images;
+        if ( $cover_images->count ) {
+            $image = $cover_images->next;
         }
     }
 }
+
+$image ||= Koha::CoverImages->no_image;
+
+my $image_data =
+    $data->param('thumbnail')
+  ? $image->thumbnail
+  : $image->imagefile;
+
 print $data->header(
-    -type            => $mimetype,
+    -type            => $image->mimetype,
     -expires         => '+30m',
-    -Content_Length  => length($image)
-), $image;
+    -Content_Length  => length($image_data)
+), $image_data;
 
 =head1 AUTHOR