]> git.evergreen-ils.org Git - working/NCIPServer.git/blob - lib/NCIP/Handler/RenewItem.pm
809667616d1e95fdac5f3f25f53ac55e0b3db5fe
[working/NCIPServer.git] / lib / NCIP / Handler / RenewItem.pm
1 package NCIP::Handler::RenewItem;
2
3 =head1
4
5   NCIP::Handler::RenewItem
6
7 =head1 SYNOPSIS
8
9     Not to be called directly, NCIP::Handler will pick the appropriate Handler 
10     object, given a message type
11
12 =head1 FUNCTIONS
13
14 =cut
15
16 use Modern::Perl;
17
18 use NCIP::Handler;
19
20 our @ISA = qw(NCIP::Handler);
21
22 sub handle {
23     my $self   = shift;
24     my $xmldoc = shift;
25     if ($xmldoc) {
26         my $root = $xmldoc->documentElement();
27         my $itemid =
28           $root->findnodes('RenewItem/UniqueItemId/ItemIdentifierValue');
29         my @elements = $root->findnodes('RenewItem/ItemElementType/Value');
30
31         # checkin the item
32         my $renewed = $self->ils->renew( $itemid );
33         my $output;
34         my $vars;
35         $vars->{'messagetype'} = 'RenewItemResponse';
36         $vars->{'barcode'} = $itemid;
37         if ( !$renewed->{success} ) {
38             $vars->{'processingerror'} = 1;
39             $vars->{'processingerrortype'} = $renewed->{'messages'};
40             $vars->{'processingerrorelement'} = 'UniqueItemIdentifier';
41             $output = $self->render_output( 'problem.tt', $vars );
42         }
43         else {
44
45             $vars->{'elements'} = \@elements;
46             $vars->{'renewed'}  = $renewed;
47             $output = $self->render_output( 'response.tt', $vars );
48         }
49         return $output;
50     }
51 }
52
53 1;