From: Chris Cormack Date: Thu, 2 Jan 2014 22:19:24 +0000 (+1300) Subject: CheckOut and CheckIn Handlers X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6f564563a809809eaf76530ade2699da87d175d5;p=NCIPServer.git CheckOut and CheckIn Handlers --- diff --git a/lib/NCIP/Handler/CheckInItem.pm b/lib/NCIP/Handler/CheckInItem.pm new file mode 100644 index 0000000..89581d2 --- /dev/null +++ b/lib/NCIP/Handler/CheckInItem.pm @@ -0,0 +1,44 @@ +package NCIP::Handler::CheckInItem; + +=head1 + + NCIP::Handler::CheckInItem + +=head1 SYNOPSIS + + Not to be called directly, NCIP::Handler will pick the appropriate Handler + object, given a message type + +=head1 FUNCTIONS + +=cut + +use Modern::Perl; + +use NCIP::Handler; + +our @ISA = qw(NCIP::Handler); + +sub handle { + my $self = shift; + my $xmldoc = shift; + if ($xmldoc) { + my $root = $xmldoc->documentElement(); + my $userid = + $root->findnodes('CheckInItem/UniqueUserId/UserIdentifierValue'); + my $itemid = + $root->findnodes('CheckInItem/UniqueItemId/ItemIdentifierValue'); + my @elements = $root->findnodes('CheckInItem/ItemElementType/Value'); + + # checkin the item + my $checkin = $self->ils->checkin( $userid, $itemid ); + my $vars; + $vars->{'messagetype'} = 'CheckInItemResponse'; + $vars->{'elements'} = \@elements; + $vars->{'checkin'} = $checkin; + my $output = $self->render_output( 'response.tt', $vars ); + return $output; + } +} + +1; diff --git a/lib/NCIP/Handler/CheckOutItem.pm b/lib/NCIP/Handler/CheckOutItem.pm new file mode 100644 index 0000000..d92e579 --- /dev/null +++ b/lib/NCIP/Handler/CheckOutItem.pm @@ -0,0 +1,44 @@ +package NCIP::Handler::CheckOutItem; + +=head1 + + NCIP::Handler::CheckOutItem + +=head1 SYNOPSIS + + Not to be called directly, NCIP::Handler will pick the appropriate Handler + object, given a message type + +=head1 FUNCTIONS + +=cut + +use Modern::Perl; + +use NCIP::Handler; + +our @ISA = qw(NCIP::Handler); + +sub handle { + my $self = shift; + my $xmldoc = shift; + if ($xmldoc) { + my $root = $xmldoc->documentElement(); + my $userid = + $root->findnodes('CheckOutItem/UniqueUserId/UserIdentifierValue'); + my $itemid = + $root->findnodes('CheckOutItem/UniqueItemId/ItemIdentifierValue'); + my @elements = $root->findnodes('CheckOutItem/ItemElementType/Value'); + + # checkout the item + my $checkout = $self->ils->checkout( $userid, $itemid ); + my $vars; + $vars->{'messagetype'} = 'CheckOutItemResponse'; + $vars->{'elements'} = \@elements; + $vars->{'checkout'} = $checkout; + my $output = $self->render_output( 'response.tt', $vars ); + return $output; + } +} + +1;