1 package NCIP::Handler::LookupUser;
5 NCIP::Handler::LookupUser
9 Not to be called directly, NCIP::Handler will pick the appropriate Handler
10 object, given a message type
21 our @ISA = qw(NCIP::Handler);
28 # Given our xml document, lets find our userid
30 $xmldoc->getElementsByTagNameNS( $self->namespace(),
31 'UserIdentifierValue' );
32 my $xpc = $self->xpc();
35 # We may get a password, username combo instead of userid
36 # Need to deal with that also
37 my $root = $xmldoc->documentElement();
39 $xpc->findnodes( '//ns:AuthenticationInput', $root );
42 foreach my $node (@authtypes) {
44 $xpc->findnodes( './ns:AuthenticationInputType', $node );
46 $xpc->findnodes( './ns:AuthenticationInputData', $node );
47 if ( $class->[0]->textContent eq 'Barcode Id' ) {
48 $barcode = $value->[0]->textContent;
50 elsif ( $class->[0]->textContent eq 'PIN' ) {
51 $pin = $value->[0]->textContent;
58 $user_id = $user_id->textContent();
61 # We may get a password, username combo instead of userid
62 # Need to deal with that also
64 my $user = NCIP::User->new( { userid => $user_id, ils => $self->ils } );
68 # this bit should be at a lower level
70 my ($from,$to) = $self->get_agencies($xmldoc);
72 # we switch these for the templates
73 # because we are responding, to becomes from, from becomes to
74 $vars->{'fromagency'} = $to;
75 $vars->{'toagency'} = $from;
77 # if we have blank user, we need to return that
78 # and can skip looking for elementtypes
79 if ( $user->userdata->{'borrowernumber'} eq '' ) {
80 $vars->{'messagetype'} = 'LookupUserResponse';
81 $vars->{'error_detail'} = "Borrower not found";
82 my $output = $self->render_output( 'problem.tt', $vars );
85 my $elements = $self->get_user_elements($xmldoc);
87 #set up the variables for our template
88 $vars->{'messagetype'} = 'LookupUserResponse';
89 $vars->{'elements'} = $elements;
90 $vars->{'user'} = $user;
91 my $output = $self->render_output( 'response.tt', $vars );