From 6f564563a809809eaf76530ade2699da87d175d5 Mon Sep 17 00:00:00 2001 From: Chris Cormack Date: Fri, 3 Jan 2014 11:19:24 +1300 Subject: [PATCH] CheckOut and CheckIn Handlers --- lib/NCIP/Handler/CheckInItem.pm | 44 ++++++++++++++++++++++++++++++++++++++++ lib/NCIP/Handler/CheckOutItem.pm | 44 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 lib/NCIP/Handler/CheckInItem.pm create mode 100644 lib/NCIP/Handler/CheckOutItem.pm 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; -- 2.11.0