Also add checks for it in more messages for NCIP::ILS::Evergreen.
Signed-off-by: Jason Stephenson <jason@sigio.com>
)
};
+ # 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
$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);
}
$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);
}
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);
}
)
} 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.
<ItemIdentifierValue>[% data.ItemId.ItemIdentifierValue | xml %]</ItemIdentifierValue>
</ItemId>
[% END -%]
+[% INCLUDE "includes/UserOptionalFields.inc" -%]
<UserIdentifierType>[% data.UserId.UserIdentifierType | xml %]</UserIdentiferiType>
[% END -%]
</UserId>
+[% INCLUDE "includes/UserOptionalFields.inc" -%]
<UserIdentifierValue>[% data.UserId.UserIdentifierValue | xml %]</UserIdentifierValue>
</UserId>
[% END -%]
+[% INCLUDE "includes/UserOptionalFields.inc" -%]
[% END -%]
</UserId>
[% END -%]
-[% IF data.UserOptionalFields -%]
-<UserOptionalFields>
-[% IF data.UserOptionalFields.NameInformation -%]
-<NameInformation>
-<PersonalNameInformation>
-<StructuredPersonalUserName>
-[% IF data.UserOptionalFields.NameInformation.GivenName -%]
-<GivenName>[% data.UserOptionalFields.NameInformation.GivenName | xml %]</GivenName>
-[% END -%]
-<Surname>[% data.UserOptionalFields.NameInformation.Surname | xml %]</Surname>
-[% IF data.UserOptionalFields.NameInformation.Prefix -%]
-<Prefix>[% data.UserOptionalFields.NameInformation.Prefix %]</Prefix>
-[% END -%]
-[% IF data.UserOptionalFields.NameInformation.Suffix -%]
-<Suffix>[% data.UserOptionalFields.NameInformation.Suffix %]</Suffix>
-[% END -%]
-[% IF data.UserOptionalFields.NameInformation.Initials -%]
-<Initials>[% data.UserOptionalFields.NameInformation.Initials %]</Initials>
-[% END -%]
-</StructuredPersonalUserName>
-</PersonalNameInformation>
-</NameInformation>
-[% END -%]
-[% IF data.UserOptionalFields.UserAddressInformation -%]
-[% FOREACH element IN data.UserOptionalFields.UserAddressInformation -%]
-<UserAddressInformation>
-<UserAddressRoleType>[% element.UserAddressRoleType | xml %]</UserAddressRoleType>
-[% IF element.PhysicalAddress -%]
-<PhysicalAddress>
-<StructuredAddress>
-<Line1>[% element.PhysicalAddress.Line1 | xml %]</Line1>
-[% IF element.PhysicalAddress.Line2 -%]
-<Line2>[% element.PhysicalAddress.Line2 | xml %]</Line2>
-[% END -%]
-[% IF element.PhysicalAddress.Locality -%]
-<Locality>[% element.PhysicalAddress.Locality | xml %]</Locality>
-[% END -%]
-[% IF element.PhysicalAddress.Region -%]
-<Region>[% element.PhysicalAddress.Region | xml %]</Region>
-[% END -%]
-[% IF element.PhysicalAddress.PostalCode -%]
-<PostalCode>[% element.PhysicalAddress.PostalCode | xml %]</PostalCode>
-[% END -%]
-[% IF element.PhysicalAddress.Country -%]
-<Country>[% element.PhysicalAddress.Country | xml %]</Country>
-[% END -%]
-</StructuredAddress>
-</PhysicalAddress>
-[% ELSIF element.ElectronicAddress -%]
-<ElectronicAddress>
-<ElectronicAddressType>[% element.ElectronicAddress.Type | xml %]</ElectronicAddressType>
-<ElectronicAddressData>[% element.ElectronicAddress.Data | xml %]</ElectronicAddressData>
-</ElectronicAddress>
-[% END -%]
-</UserAddressInformation>
-[% END -%]
-[% END -%]
-[% IF data.UserOptionalFields.UserPrivilege -%]
-[% FOREACH privilege IN data.UserOptionalFields.UserPrivilege -%]
-<UserPrivilege>
-<AgencyId>[% privilege.AgencyId | xml -%]</AgencyId>
-<AgencyUserPrivilegeType>[% privilege.AgencyUserPrivilegeType | xml %]</AgencyUserPrivilegeType>
-[% IF privilege.ValidFromDate -%]
-<ValidFromDate>[% privilege.ValidFromDate | xml %]</ValidFromDate>
-[% END -%]
-[% IF privilege.ValidToDate -%]
-<ValidToDate>[% privilege.ValidToDate | xml %]</ValidToDate>
-[% END -%]
-[% IF privilege.UserPrivilegeDescription -%]
-<UserPrivilegeDescription>[% privilege.UserPrivilegeDescription | xml %]</UserPrivilegeDescription>
-[% END -%]
-[% IF privilege.UserPrivilegeStatus -%]
-<UserPrivilegeStatus>
-<UserPrivilegeStatusType>
-[% privilege.UserPrivilegeStatus.UserPrivilegeStatusType | xml %]
-</UserPrivilegeStatusType>
-[% IF privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus -%]
-<DateOfUserPrivilegeStatus>
-[% privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus | xml %]
-</DateOfUserPrivilegeStatus>
-[% END -%]
-</UserPrivilegeStatus>
-[% END -%]
-</UserPrivilege>
-[% END -%]
-[% END -%]
-[% IF data.UserOptionalFields.UserLanguage -%]
-[% FOREACH language IN data.UserOptionalFields.UserLanguage -%]
-<UserLanguage>[% language | xml %]</UserLanguage>
-[% END -%]
-[% END -%]
-[% IF data.UserOptionalFields.BlockOrTrap -%]
-[% FOREACH block IN data.UserOptionalFields.BlockOrTrap -%]
-<BlockOrTrap>
-<AgencyId>[% block.AgencyId | xml %]</AgencyId>
-<BlockOrTrapType>[% block.BlockOrTrapType | xml %]</BlockOrTrapType>
-[% IF block.ValidFromDate -%]
-<ValidFromDate>[% block.ValidFromDate %]</ValidFromDate>
-[% END -%]
-[% IF block.ValidToDate -%]
-<ValidToDate>[% block.ValidToDate %]</ValidToDate>
-[% END %]
-</BlockOrTrap>
-[% END -%]
-[% END -%]
-</UserOptionalFields>
-[% END -%]
+[% INCLUDE "includes/UserOptionalFields.inc" -%]
</UserId>
<RequestType>[% data.RequestType | xml %]</RequestType>
<RequestScopeType>[% data.RequestScopeType | xml %]</RequestScopeType>
+[% INCLUDE "includes/UserOptionalFields.inc" -%]
--- /dev/null
+[% IF data.UserOptionalFields -%]
+<UserOptionalFields>
+[% IF data.UserOptionalFields.NameInformation -%]
+<NameInformation>
+<PersonalNameInformation>
+<StructuredPersonalUserName>
+[% IF data.UserOptionalFields.NameInformation.GivenName -%]
+<GivenName>[% data.UserOptionalFields.NameInformation.GivenName | xml %]</GivenName>
+[% END -%]
+<Surname>[% data.UserOptionalFields.NameInformation.Surname | xml %]</Surname>
+[% IF data.UserOptionalFields.NameInformation.Prefix -%]
+<Prefix>[% data.UserOptionalFields.NameInformation.Prefix %]</Prefix>
+[% END -%]
+[% IF data.UserOptionalFields.NameInformation.Suffix -%]
+<Suffix>[% data.UserOptionalFields.NameInformation.Suffix %]</Suffix>
+[% END -%]
+[% IF data.UserOptionalFields.NameInformation.Initials -%]
+<Initials>[% data.UserOptionalFields.NameInformation.Initials %]</Initials>
+[% END -%]
+</StructuredPersonalUserName>
+</PersonalNameInformation>
+</NameInformation>
+[% END -%]
+[% IF data.UserOptionalFields.UserAddressInformation -%]
+[% FOREACH element IN data.UserOptionalFields.UserAddressInformation -%]
+<UserAddressInformation>
+<UserAddressRoleType>[% element.UserAddressRoleType | xml %]</UserAddressRoleType>
+[% IF element.PhysicalAddress -%]
+<PhysicalAddress>
+<StructuredAddress>
+<Line1>[% element.PhysicalAddress.Line1 | xml %]</Line1>
+[% IF element.PhysicalAddress.Line2 -%]
+<Line2>[% element.PhysicalAddress.Line2 | xml %]</Line2>
+[% END -%]
+[% IF element.PhysicalAddress.Locality -%]
+<Locality>[% element.PhysicalAddress.Locality | xml %]</Locality>
+[% END -%]
+[% IF element.PhysicalAddress.Region -%]
+<Region>[% element.PhysicalAddress.Region | xml %]</Region>
+[% END -%]
+[% IF element.PhysicalAddress.PostalCode -%]
+<PostalCode>[% element.PhysicalAddress.PostalCode | xml %]</PostalCode>
+[% END -%]
+[% IF element.PhysicalAddress.Country -%]
+<Country>[% element.PhysicalAddress.Country | xml %]</Country>
+[% END -%]
+</StructuredAddress>
+</PhysicalAddress>
+[% ELSIF element.ElectronicAddress -%]
+<ElectronicAddress>
+<ElectronicAddressType>[% element.ElectronicAddress.Type | xml %]</ElectronicAddressType>
+<ElectronicAddressData>[% element.ElectronicAddress.Data | xml %]</ElectronicAddressData>
+</ElectronicAddress>
+[% END -%]
+</UserAddressInformation>
+[% END -%]
+[% END -%]
+[% IF data.UserOptionalFields.UserPrivilege -%]
+[% FOREACH privilege IN data.UserOptionalFields.UserPrivilege -%]
+<UserPrivilege>
+<AgencyId>[% privilege.AgencyId | xml -%]</AgencyId>
+<AgencyUserPrivilegeType>[% privilege.AgencyUserPrivilegeType | xml %]</AgencyUserPrivilegeType>
+[% IF privilege.ValidFromDate -%]
+<ValidFromDate>[% privilege.ValidFromDate | xml %]</ValidFromDate>
+[% END -%]
+[% IF privilege.ValidToDate -%]
+<ValidToDate>[% privilege.ValidToDate | xml %]</ValidToDate>
+[% END -%]
+[% IF privilege.UserPrivilegeDescription -%]
+<UserPrivilegeDescription>[% privilege.UserPrivilegeDescription | xml %]</UserPrivilegeDescription>
+[% END -%]
+[% IF privilege.UserPrivilegeStatus -%]
+<UserPrivilegeStatus>
+<UserPrivilegeStatusType>
+[% privilege.UserPrivilegeStatus.UserPrivilegeStatusType | xml %]
+</UserPrivilegeStatusType>
+[% IF privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus -%]
+<DateOfUserPrivilegeStatus>
+[% privilege.UserPrivilegeStatus.DateOfUserPrivilegeStatus | xml %]
+</DateOfUserPrivilegeStatus>
+[% END -%]
+</UserPrivilegeStatus>
+[% END -%]
+</UserPrivilege>
+[% END -%]
+[% END -%]
+[% IF data.UserOptionalFields.UserLanguage -%]
+[% FOREACH language IN data.UserOptionalFields.UserLanguage -%]
+<UserLanguage>[% language | xml %]</UserLanguage>
+[% END -%]
+[% END -%]
+[% IF data.UserOptionalFields.BlockOrTrap -%]
+[% FOREACH block IN data.UserOptionalFields.BlockOrTrap -%]
+<BlockOrTrap>
+<AgencyId>[% block.AgencyId | xml %]</AgencyId>
+<BlockOrTrapType>[% block.BlockOrTrapType | xml %]</BlockOrTrapType>
+[% IF block.ValidFromDate -%]
+<ValidFromDate>[% block.ValidFromDate %]</ValidFromDate>
+[% END -%]
+[% IF block.ValidToDate -%]
+<ValidToDate>[% block.ValidToDate %]</ValidToDate>
+[% END %]
+</BlockOrTrap>
+[% END -%]
+[% END -%]
+</UserOptionalFields>
+[% END -%]