From: Jason Stephenson Date: Sun, 5 Oct 2014 14:56:38 +0000 (-0400) Subject: Add UserOptionalFields to more templates. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=57e86fcdcde0a9c5bef1a031f929154e9a6f379a;p=working%2FNCIPServer.git Add UserOptionalFields to more templates. Also add checks for it in more messages for NCIP::ILS::Evergreen. Signed-off-by: Jason Stephenson --- diff --git a/lib/NCIP/ILS/Evergreen.pm b/lib/NCIP/ILS/Evergreen.pm index c859df5..8abd8b9 100644 --- a/lib/NCIP/ILS/Evergreen.pm +++ b/lib/NCIP/ILS/Evergreen.pm @@ -470,6 +470,14 @@ sub checkinitem { ) }; + # Look for UserElements requested and add it to the response: + my $elements = $request->{$message_type}->{UserElementType}; + if ($elements) { + $elements = [$elements] unless (ref $elements eq 'ARRAY'); + my $optionalfields = $self->handle_user_elements($circ_user, $elements); + $data->{UserOptionalFields} = $optionalfields; + } + $response->data($data); # At some point in the future, we should probably check if @@ -659,6 +667,14 @@ sub renewitem { $due->set_time_zone('UTC'); $data->{DateDue} = $due->iso8601(); + # Look for UserElements requested and add it to the response: + my $elements = $request->{$message_type}->{UserElementType}; + if ($elements) { + $elements = [$elements] unless (ref $elements eq 'ARRAY'); + my $optionalfields = $self->handle_user_elements($user, $elements); + $data->{UserOptionalFields} = $optionalfields; + } + $response->data($data); } @@ -818,6 +834,14 @@ sub checkoutitem { $due->set_time_zone('UTC'); $data->{DateDue} = $due->iso8601(); + # Look for UserElements requested and add it to the response: + my $elements = $request->{$message_type}->{UserElementType}; + if ($elements) { + $elements = [$elements] unless (ref $elements eq 'ARRAY'); + my $optionalfields = $self->handle_user_elements($user, $elements); + $data->{UserOptionalFields} = $optionalfields; + } + $response->data($data); } @@ -969,6 +993,14 @@ sub requestitem { RequestType => $request->{$message}->{RequestType}, RequestScopeType => ($hold->hold_type() eq 'V') ? "item" : "bibliographic item" }; + # Look for UserElements requested and add it to the response: + my $elements = $request->{$message_type}->{UserElementType}; + if ($elements) { + $elements = [$elements] unless (ref $elements eq 'ARRAY'); + my $optionalfields = $self->handle_user_elements($user, $elements); + $data->{UserOptionalFields} = $optionalfields; + } + $response->data($data); } @@ -1115,17 +1147,23 @@ sub cancelrequestitem { ) } else { $self->cancel_hold($hold); - $response->data( - { - RequestId => $requestid, - UserId => NCIP::User::Id->new( - { - UserIdentifierType => 'Barcode Id', - UserIdentifierValue => $user->card->barcode() - } - ) - } - ) + my $data = { + RequestId => $requestid, + UserId => NCIP::User::Id->new( + { + UserIdentifierType => 'Barcode Id', + UserIdentifierValue => $user->card->barcode() + } + ) + }; + # Look for UserElements requested and add it to the response: + my $elements = $request->{$message_type}->{UserElementType}; + if ($elements) { + $elements = [$elements] unless (ref $elements eq 'ARRAY'); + my $optionalfields = $self->handle_user_elements($user, $elements); + $data->{UserOptionalFields} = $optionalfields; + } + $response->data($data); } } else { # Report a problem that the hold is not for this user. diff --git a/templates/includes/AcceptItemResponse.inc b/templates/includes/AcceptItemResponse.inc index a011d8e..5f91712 100644 --- a/templates/includes/AcceptItemResponse.inc +++ b/templates/includes/AcceptItemResponse.inc @@ -18,3 +18,4 @@ [% data.ItemId.ItemIdentifierValue | xml %] [% END -%] +[% INCLUDE "includes/UserOptionalFields.inc" -%] diff --git a/templates/includes/CancelRequestItemResponse.inc b/templates/includes/CancelRequestItemResponse.inc index 483e63b..d912704 100644 --- a/templates/includes/CancelRequestItemResponse.inc +++ b/templates/includes/CancelRequestItemResponse.inc @@ -16,3 +16,4 @@ [% data.UserId.UserIdentifierType | xml %] [% END -%] +[% INCLUDE "includes/UserOptionalFields.inc" -%] diff --git a/templates/includes/CheckInItemResponse.inc b/templates/includes/CheckInItemResponse.inc index ad36025..5a27e1e 100644 --- a/templates/includes/CheckInItemResponse.inc +++ b/templates/includes/CheckInItemResponse.inc @@ -18,3 +18,4 @@ [% data.UserId.UserIdentifierValue | xml %] [% END -%] +[% INCLUDE "includes/UserOptionalFields.inc" -%] diff --git a/templates/includes/LookupUserResponse.inc b/templates/includes/LookupUserResponse.inc index c2512f6..4a66689 100644 --- a/templates/includes/LookupUserResponse.inc +++ b/templates/includes/LookupUserResponse.inc @@ -15,110 +15,4 @@ [% END -%] [% END -%] -[% IF data.UserOptionalFields -%] - -[% IF data.UserOptionalFields.NameInformation -%] - - - -[% IF data.UserOptionalFields.NameInformation.GivenName -%] -[% data.UserOptionalFields.NameInformation.GivenName | xml %] -[% END -%] -[% data.UserOptionalFields.NameInformation.Surname | xml %] -[% IF data.UserOptionalFields.NameInformation.Prefix -%] -[% data.UserOptionalFields.NameInformation.Prefix %] -[% END -%] -[% IF data.UserOptionalFields.NameInformation.Suffix -%] -[% data.UserOptionalFields.NameInformation.Suffix %] -[% END -%] -[% IF data.UserOptionalFields.NameInformation.Initials -%] -[% data.UserOptionalFields.NameInformation.Initials %] -[% END -%] - - - -[% END -%] -[% IF data.UserOptionalFields.UserAddressInformation -%] -[% FOREACH element IN data.UserOptionalFields.UserAddressInformation -%] - -[% element.UserAddressRoleType | xml %] -[% IF element.PhysicalAddress -%] - - -[% element.PhysicalAddress.Line1 | xml %] -[% IF element.PhysicalAddress.Line2 -%] -[% element.PhysicalAddress.Line2 | xml %] -[% END -%] -[% IF element.PhysicalAddress.Locality -%] -[% element.PhysicalAddress.Locality | xml %] -[% END -%] -[% IF element.PhysicalAddress.Region -%] -[% element.PhysicalAddress.Region | xml %] -[% END -%] -[% IF element.PhysicalAddress.PostalCode -%] -[% element.PhysicalAddress.PostalCode | xml %] -[% END -%] -[% IF element.PhysicalAddress.Country -%] -[% element.PhysicalAddress.Country | xml %] -[% END -%] - - -[% ELSIF element.ElectronicAddress -%] - -[% element.ElectronicAddress.Type | xml %] -[% element.ElectronicAddress.Data | xml %] - -[% END -%] - -[% END -%] -[% END -%] -[% IF data.UserOptionalFields.UserPrivilege -%] -[% FOREACH privilege IN data.UserOptionalFields.UserPrivilege -%] - -[% privilege.AgencyId | xml -%] -[% privilege.AgencyUserPrivilegeType | xml %] -[% IF privilege.ValidFromDate -%] -[% privilege.ValidFromDate | xml %] -[% END -%] -[% IF privilege.ValidToDate -%] -[% privilege.ValidToDate | xml %] -[% END -%] -[% IF privilege.UserPrivilegeDescription -%] -[% privilege.UserPrivilegeDescription | xml %] -[% END -%] -[% IF privilege.UserPrivilegeStatus -%] - - -[% privilege.UserPrivilegeStatus.UserPrivilegeStatusType | xml %] - -[% IF privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus -%] - -[% privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus | xml %] - -[% END -%] - -[% END -%] - -[% END -%] -[% END -%] -[% IF data.UserOptionalFields.UserLanguage -%] -[% FOREACH language IN data.UserOptionalFields.UserLanguage -%] -[% language | xml %] -[% END -%] -[% END -%] -[% IF data.UserOptionalFields.BlockOrTrap -%] -[% FOREACH block IN data.UserOptionalFields.BlockOrTrap -%] - -[% block.AgencyId | xml %] -[% block.BlockOrTrapType | xml %] -[% IF block.ValidFromDate -%] -[% block.ValidFromDate %] -[% END -%] -[% IF block.ValidToDate -%] -[% block.ValidToDate %] -[% END %] - -[% END -%] -[% END -%] - -[% END -%] +[% INCLUDE "includes/UserOptionalFields.inc" -%] diff --git a/templates/includes/RequestItemResponse.inc b/templates/includes/RequestItemResponse.inc index a75e5d2..5f0ef28 100644 --- a/templates/includes/RequestItemResponse.inc +++ b/templates/includes/RequestItemResponse.inc @@ -18,3 +18,4 @@ [% data.RequestType | xml %] [% data.RequestScopeType | xml %] +[% INCLUDE "includes/UserOptionalFields.inc" -%] diff --git a/templates/includes/UserOptionalFields.inc b/templates/includes/UserOptionalFields.inc new file mode 100644 index 0000000..9e68adc --- /dev/null +++ b/templates/includes/UserOptionalFields.inc @@ -0,0 +1,107 @@ +[% IF data.UserOptionalFields -%] + +[% IF data.UserOptionalFields.NameInformation -%] + + + +[% IF data.UserOptionalFields.NameInformation.GivenName -%] +[% data.UserOptionalFields.NameInformation.GivenName | xml %] +[% END -%] +[% data.UserOptionalFields.NameInformation.Surname | xml %] +[% IF data.UserOptionalFields.NameInformation.Prefix -%] +[% data.UserOptionalFields.NameInformation.Prefix %] +[% END -%] +[% IF data.UserOptionalFields.NameInformation.Suffix -%] +[% data.UserOptionalFields.NameInformation.Suffix %] +[% END -%] +[% IF data.UserOptionalFields.NameInformation.Initials -%] +[% data.UserOptionalFields.NameInformation.Initials %] +[% END -%] + + + +[% END -%] +[% IF data.UserOptionalFields.UserAddressInformation -%] +[% FOREACH element IN data.UserOptionalFields.UserAddressInformation -%] + +[% element.UserAddressRoleType | xml %] +[% IF element.PhysicalAddress -%] + + +[% element.PhysicalAddress.Line1 | xml %] +[% IF element.PhysicalAddress.Line2 -%] +[% element.PhysicalAddress.Line2 | xml %] +[% END -%] +[% IF element.PhysicalAddress.Locality -%] +[% element.PhysicalAddress.Locality | xml %] +[% END -%] +[% IF element.PhysicalAddress.Region -%] +[% element.PhysicalAddress.Region | xml %] +[% END -%] +[% IF element.PhysicalAddress.PostalCode -%] +[% element.PhysicalAddress.PostalCode | xml %] +[% END -%] +[% IF element.PhysicalAddress.Country -%] +[% element.PhysicalAddress.Country | xml %] +[% END -%] + + +[% ELSIF element.ElectronicAddress -%] + +[% element.ElectronicAddress.Type | xml %] +[% element.ElectronicAddress.Data | xml %] + +[% END -%] + +[% END -%] +[% END -%] +[% IF data.UserOptionalFields.UserPrivilege -%] +[% FOREACH privilege IN data.UserOptionalFields.UserPrivilege -%] + +[% privilege.AgencyId | xml -%] +[% privilege.AgencyUserPrivilegeType | xml %] +[% IF privilege.ValidFromDate -%] +[% privilege.ValidFromDate | xml %] +[% END -%] +[% IF privilege.ValidToDate -%] +[% privilege.ValidToDate | xml %] +[% END -%] +[% IF privilege.UserPrivilegeDescription -%] +[% privilege.UserPrivilegeDescription | xml %] +[% END -%] +[% IF privilege.UserPrivilegeStatus -%] + + +[% privilege.UserPrivilegeStatus.UserPrivilegeStatusType | xml %] + +[% IF privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus -%] + +[% privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus | xml %] + +[% END -%] + +[% END -%] + +[% END -%] +[% END -%] +[% IF data.UserOptionalFields.UserLanguage -%] +[% FOREACH language IN data.UserOptionalFields.UserLanguage -%] +[% language | xml %] +[% END -%] +[% END -%] +[% IF data.UserOptionalFields.BlockOrTrap -%] +[% FOREACH block IN data.UserOptionalFields.BlockOrTrap -%] + +[% block.AgencyId | xml %] +[% block.BlockOrTrapType | xml %] +[% IF block.ValidFromDate -%] +[% block.ValidFromDate %] +[% END -%] +[% IF block.ValidToDate -%] +[% block.ValidToDate %] +[% END %] + +[% END -%] +[% END -%] + +[% END -%]