Starting work on the CancelRequestItem handler
[working/NCIPServer.git] / lib / NCIP / Handler / CancelRequestItem.pm
1 package NCIP::Handler::CancelRequestItem;
2
3 =head1
4
5   NCIP::Handler::CancelRequestItem
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 use NCIP::User;
20
21 our @ISA = qw(NCIP::Handler);
22
23 sub handle {
24     my $self   = shift;
25     my $xmldoc = shift;
26     if ($xmldoc) {
27         my $root      = $xmldoc->documentElement();
28         my $xpc       = $self->xpc();
29         my $userid    = $xpc->findnodes( '//ns:UserIdentifierValue', $root );
30         my $requestid = $xpc->findnodes( '//ns:RequestIdentifierValue', $root );
31         my ( $error, $messages ) = $self->ils->cancelrequest($requestid);
32         if ($error) {
33             $vars->{'processingerror'}        = 1;
34             $vars->{'processingerrortype'}    = $messages;
35             $vars->{'processingerrorelement'} = 'UniqueRequestIdentifier';
36             $output = $self->render_output( 'problem.tt', $vars );
37         }
38         else {
39             my $elements = $self->get_user_elements($xmldoc);
40             $vars->{'elements'} = $elements;
41             $output = $self->render_output( 'response.tt', $vars );
42         }
43         return $output;
44     }
45 }
46
47 1;