(bug #3584) detect ccl queries
[koha.git] / C4 / Review.pm
index 1522a11..e08d24c 100644 (file)
@@ -18,12 +18,18 @@ package C4::Review;
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-require Exporter;
 use C4::Context;
 
 use vars qw($VERSION @ISA @EXPORT);
 
-$VERSION = 0.01;
+BEGIN {
+       # set the version for version checking
+       $VERSION = 3.00;
+       require Exporter;
+       @ISA    = qw(Exporter);
+       @EXPORT = qw(getreview savereview updatereview numberofreviews
+               getreviews getallreviews approvereview deletereview);
+}
 
 =head1 NAME
 
@@ -33,7 +39,6 @@ C4::Review - Perl Module containing routines for dealing with reviews of items
 
   use C4::Review;
 
-
   my $review=getreview($biblionumber,$borrowernumber);
   savereview($biblionumber,$borrowernumber,$review);
   updatereview($biblionumber,$borrowernumber,$review);
@@ -47,104 +52,110 @@ Review.pm provides many routines for manipulating reviews.
 
 =head1 FUNCTIONS
 
-=over 2
-
-=cut
-
-@ISA = qw(Exporter);
-@EXPORT = qw(getreview savereview updatereview numberofreviews
-    getreviews getallreviews                   );
-
-use vars qw();
-
-my $DEBUG = 0;
-
 =head2 getreview
 
   $review = getreview($biblionumber,$borrowernumber);
 
 Takes a borrowernumber and a biblionumber and returns the review of that biblio
 
-
 =cut
 
 sub getreview {
-    my ($biblionumber,$borrowernumber) = @_;
-    my $dbh=C4::Context->dbh;
-    my $query="SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
-    my $sth=$dbh->prepare($query);
-    $sth->execute($biblionumber,$borrowernumber);
-    my $review = $sth->fetchrow_hashref();
-    $sth->finish();
-    return $review;
-    }
+    my ( $biblionumber, $borrowernumber ) = @_;
+    my $dbh   = C4::Context->dbh;
+    my $query =
+      "SELECT * FROM reviews WHERE biblionumber=? and borrowernumber=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( $biblionumber, $borrowernumber );
+    return $sth->fetchrow_hashref();
+}
 
 sub savereview {
-    my ($biblionumber,$borrowernumber,$review) = @_;
-    my $dbh=C4::Context->dbh;
-    my $query="INSERT INTO reviews (borrowernumber,biblionumber,
+    my ( $biblionumber, $borrowernumber, $review ) = @_;
+    my $dbh   = C4::Context->dbh;
+    my $query = "INSERT INTO reviews (borrowernumber,biblionumber,
        review,approved,datereviewed) VALUES 
-  (?,?,?,?,now())";
-    my $sth=$dbh->prepare($query);
-    $sth->execute($borrowernumber,$biblionumber,$review,0);
-    $sth->finish();
-    }
+  (?,?,?,0,now())";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( $borrowernumber, $biblionumber, $review);
+}
 
 sub updatereview {
-    my ($biblionumber,$borrowernumber,$review) = @_;
-    my $dbh=C4::Context->dbh;
-    my $query="UPDATE reviews SET review=?,datereviewed=now(),approved=?
-  WHERE borrowernumber=? and biblionumber=?";
-    my $sth=$dbh->prepare($query);
-    $sth->execute($review,0,$borrowernumber,$biblionumber);
-    $sth->finish();
-    
-    }
+    my ( $biblionumber, $borrowernumber, $review ) = @_;
+    my $dbh   = C4::Context->dbh;
+    my $query = "UPDATE reviews SET review=?,datereviewed=now(),approved=0  WHERE borrowernumber=? and biblionumber=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( $review, $borrowernumber, $biblionumber );
+}
 
 sub numberofreviews {
-    my ($biblionumber)=@_;
-    my $dbh=C4::Context->dbh;
-    my $query="SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
-    my $sth=$dbh->prepare($query);
-    $sth->execute($biblionumber,1);
-    my $count=$sth->fetchrow_hashref;
-    
-    $sth->finish();
-    return ($count->{'count(*)'});
+    my ($biblionumber) = @_;
+    my $dbh            = C4::Context->dbh;
+    my $query          =
+      "SELECT count(*) FROM reviews WHERE biblionumber=? and approved=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( $biblionumber, 1 );
+       return $sth->fetchrow;
 }
 
 sub getreviews {
-    my ($biblionumber,$approved)=@_;
-    my $dbh=C4::Context->dbh;
-    my $query="SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
-    my $sth=$dbh->prepare($query) || warn $dbh->err_str;
-    $sth->execute($biblionumber,$approved);
-    my @results;
-    while (my $data=$sth->fetchrow_hashref()){
-       push @results,$data;
-       }
-    $sth->finish();
-    return(\@results);
+    my ( $biblionumber, $approved ) = @_;
+    my $dbh   = C4::Context->dbh;
+    my $query =
+"SELECT * FROM reviews WHERE biblionumber=? and approved=? order by datereviewed desc";
+    my $sth = $dbh->prepare($query) || warn $dbh->err_str;
+    $sth->execute( $biblionumber, $approved );
+       return $sth->fetchall_arrayref({});
 }
 
 sub getallreviews {
-    my ($status) =@_;
-    my $dbh=C4::Context->dbh;
-    my $query="SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
-    my $sth=$dbh->prepare($query);
+    my ($status) = @_;
+    my $dbh      = C4::Context->dbh;
+    my $query    =
+      "SELECT * FROM reviews WHERE approved=? order by datereviewed desc";
+    my $sth = $dbh->prepare($query);
     $sth->execute($status);
-    my @results;
-    while (my $data=$sth->fetchrow_hashref()){
-       push @results,$data;
-       }
-    $sth->finish();
-    return(\@results);
-}    
+       return $sth->fetchall_arrayref({});
+}
+
+=head2 approvereview
+
+  approvereview($reviewid);
+
+Takes a reviewid and marks that review approved
+
+=cut
+
+sub approvereview {
+    my ($reviewid) = @_;
+    my $dbh        = C4::Context->dbh();
+    my $query      = "UPDATE reviews
+               SET approved=?
+               WHERE reviewid=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute( 1, $reviewid );
+}
+
+=head2 deletereview
+
+  deletereview($reviewid);
+
+Takes a reviewid and deletes it
+
+=cut
+
+sub deletereview {
+    my ($reviewid) = @_;
+    my $dbh        = C4::Context->dbh();
+    my $query      = "DELETE FROM reviews
+               WHERE reviewid=?";
+    my $sth = $dbh->prepare($query);
+    $sth->execute($reviewid);
+}
+
 1;
 __END__
 
-=back
-
 =head1 AUTHOR
 
 Koha Team