@ -170,7 +170,7 @@ sub GetRecords {
# Check if the schema is supported. For now, GetRecords only supports MARCXML
if ( $ cgi - > param ( 'schema' ) and $ cgi - > param ( 'schema' ) ne "MARCXML" ) {
return { messag e = > 'UnsupportedSchema' } ;
return { cod e = > 'UnsupportedSchema' } ;
}
my @ records ;
@ -214,7 +214,17 @@ sub GetRecords {
map { $ biblioitem - > { $ _ } = encode_entities ( $ biblioitem - > { $ _ } , '&' ) } grep ( ! /marcxml/ , keys %$ biblioitem ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
push @ records , $ biblioitem ;
=== === =
$ _ = encode_entities ( $$ biblioitem { $ _ } , '&' ) for @$ biblioitem { grep { ! /marcxml/ } keys %$ biblioitem } ;
push @ records , $ biblioitem ;
} else {
push @ records , { code = > 'RecordNotFound' } ;
}
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
return { record = > \ @ records } ;
@ -241,7 +251,7 @@ sub GetAuthorityRecords {
# If the user asks for an unsupported schema, return an error code
if ( $ cgi - > param ( 'schema' ) and $ cgi - > param ( 'schema' ) ne "MARCXML" ) {
return { messag e = > 'UnsupportedSchema' } ;
return { cod e = > 'UnsupportedSchema' } ;
}
my $ records ;
@ -250,8 +260,12 @@ sub GetAuthorityRecords {
foreach my $ authid ( split ( / / , $ cgi - > param ( 'id' ) ) ) {
# Get the record as XML string, or error code
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ record = GetAuthorityXML ( $ authid ) || "<record>RecordNotFound</record>" ;
$ record =~ s/<\?xml version="1.0" encoding="UTF-8"\?>//go ;
=== === =
my $ record = GetAuthorityXML ( $ _ ) || "<record><code>RecordNotFound</code></record>" ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
$ record =~ s/<\?xml(.*)\?>//go ;
$ records . = $ record ;
}
@ -279,6 +293,7 @@ sub LookupPatron {
my ( $ cgi ) = @ _ ;
# Get the borrower...
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMember ( $ cgi - > param ( 'id_type' ) = > $ cgi - > param ( 'id' ) ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
@ -286,6 +301,10 @@ sub LookupPatron {
# Build the hashref
my $ patron - > { 'id' } = $ borrower - > { 'borrowernumber' } ;
=== === =
my $ borrower = GetMember ( $ cgi - > param ( 'id' ) , $ cgi - > param ( 'id_type' ) ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# ...and return his ID
return $ patron ;
@ -308,9 +327,15 @@ sub LookupPatron {
sub AuthenticatePatron {
my ( $ cgi ) = @ _ ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
# Check if borrower exists, using a C4::ILSDI::Utility function...
if ( not ( BorrowerExists ( $ cgi - > param ( 'username' ) , $ cgi - > param ( 'password' ) ) ) ) {
return { message = > 'PatronNotFound' } ;
=== === =
# Check if borrower exists, using a C4::Auth function...
unless ( checkpw ( C4::Context - > dbh , $ cgi - > param ( 'username' ) , $ cgi - > param ( 'password' ) ) ) {
return { code = > 'PatronNotFound' } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
# Get the borrower
@ -349,10 +374,15 @@ sub GetPatronInfo {
# Get Member details
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Cleaning the borrower hashref
$ borrower - > { 'charges' } = $ borrower - > { 'flags' } - > { 'CHARGES' } - > { 'amount' } ;
@ -436,6 +466,7 @@ sub GetPatronStatus {
# Get Member details
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
@ -448,6 +479,17 @@ sub GetPatronStatus {
$ patron - > { 'expiry' } = $ borrower - > { 'dateexpiry' } ;
return $ patron ;
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
# Return the results
return {
type = > $$ borrower { categorycode } ,
status = > 0 , # TODO
expiry = > $$ borrower { dateexpiry } ,
} ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
= head2 GetServices
@ -468,6 +510,7 @@ sub GetServices {
# Get the member, or return an error code if not found
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
@ -479,6 +522,15 @@ sub GetServices {
if ( not $ item - > { 'itemnumber' } ) {
return { message = > 'RecordNotFound' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
# Get the item, or return an error code if not found
my $ itemnumber = $ cgi - > param ( 'item_id' ) ;
my $ item = GetItem ( $ itemnumber ) ;
return { code = > 'RecordNotFound' } unless $$ item { itemnumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
my @ availablefor ;
@ -544,17 +596,27 @@ sub RenewLoan {
# Get borrower infos or return an error code
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Get the item, or return an error code
my $ itemnumber = $ cgi - > param ( 'item_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ item = GetItem ( $ itemnumber , undef , undef ) ;
if ( not $ item - > { 'itemnumber' } ) {
return { message = > 'RecordNotFound' } ;
}
=== === =
my $ item = GetItem ( $ itemnumber ) ;
return { code = > 'RecordNotFound' } unless $$ item { itemnumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Add renewal if possible
my @ renewal = CanBookBeRenewed ( $ borrowernumber , $ itemnumber ) ;
@ -598,6 +660,7 @@ sub HoldTitle {
# Get the borrower or return an error code
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
@ -616,18 +679,39 @@ sub HoldTitle {
if ( not $ canbereserved ) {
return { message = > 'NotHoldable' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
# Get the biblio record, or return an error code
my $ biblionumber = $ cgi - > param ( 'bib_id' ) ;
my ( $ count , $ biblio ) = GetBiblio ( $ biblionumber ) ;
return { code = > 'RecordNotFound' } unless $$ biblio { biblionumber } ;
my $ title = $$ biblio { title } ;
# Check if the biblio can be reserved
return { code = > 'NotHoldable' } unless CanBookBeReserved ( $ borrowernumber , $ biblionumber ) ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
my $ branch ;
# Pickup branch management
if ( $ cgi - > param ( 'pickup_location' ) ) {
$ branch = $ cgi - > param ( 'pickup_location' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ branches = GetBranches ( ) ;
if ( not $ branches - > { $ branch } ) {
return { message = > 'LocationNotFound' } ;
}
} else { # if user provide no branch, use his own
$ branch = $ borrower - > { 'branchcode' } ;
=== === =
my $ branches = GetBranches ;
return { code = > 'LocationNotFound' } unless $$ branches { $ branch } ;
} else { # if the request provide no branch, use the borrower's branch
$ branch = $$ borrower { branchcode } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
# Add the reserve
@ -671,14 +755,20 @@ sub HoldItem {
# Get the borrower or return an error code
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Get the biblio or return an error code
my $ biblionumber = $ cgi - > param ( 'bib_id' ) ;
my ( $ count , $ biblio ) = GetBiblio ( $ biblionumber ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
if ( not $ biblio - > { 'biblionumber' } ) {
return { message = > 'RecordNotFound' } ;
}
@ -702,6 +792,24 @@ sub HoldItem {
if ( ( not $ canbookbereserved ) or not ( $ canitembereserved ) ) {
return { message = > 'NotHoldable' } ;
}
=== === =
return { code = > 'RecordNotFound' } unless $$ biblio { biblionumber } ;
my $ title = $$ biblio { title } ;
# Get the item or return an error code
my $ itemnumber = $ cgi - > param ( 'item_id' ) ;
my $ item = GetItem ( $ itemnumber ) ;
return { code = > 'RecordNotFound' } unless $$ item { itemnumber } ;
# If the biblio does not match the item, return an error code
return { code = > 'RecordNotFound' } if $$ item { biblionumber } ne $$ biblio { biblionumber } ;
# Check for item disponibility
my $ canitembereserved = CanItemBeReserved ( $ borrowernumber , $ itemnumber ) ;
my $ canbookbereserved = CanBookBeReserved ( $ borrowernumber , $ biblionumber ) ;
return { code = > 'NotHoldable' } unless $ canbookbereserved and $ canitembereserved ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
my $ branch ;
@ -709,11 +817,17 @@ sub HoldItem {
if ( $ cgi - > param ( 'pickup_location' ) ) {
$ branch = $ cgi - > param ( 'pickup_location' ) ;
my $ branches = GetBranches ( ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
if ( not $ branches - > { $ branch } ) {
return { message = > 'LocationNotFound' } ;
}
} else { # if user provide no branch, use his own
$ branch = $ borrower - > { 'branchcode' } ;
=== === =
return { code = > 'LocationNotFound' } unless $$ branches { $ branch } ;
} else { # if the request provide no branch, use the borrower's branch
$ branch = $$ borrower { branchcode } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
my $ rank ;
@ -756,6 +870,7 @@ sub CancelHold {
# Get the borrower or return an error code
my $ borrowernumber = $ cgi - > param ( 'patron_id' ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
my $ borrower = GetMemberDetails ( $ borrowernumber , undef ) ;
if ( not $ borrower - > { 'borrowernumber' } ) {
return { message = > 'PatronNotFound' } ;
@ -767,6 +882,15 @@ sub CancelHold {
if ( not $ item - > { 'itemnumber' } ) {
return { message = > 'RecordNotFound' } ;
}
=== === =
my $ borrower = GetMemberDetails ( $ borrowernumber ) ;
return { code = > 'PatronNotFound' } unless $$ borrower { borrowernumber } ;
# Get the item or return an error code
my $ itemnumber = $ cgi - > param ( 'item_id' ) ;
my $ item = GetItem ( $ itemnumber ) ;
return { code = > 'RecordNotFound' } unless $$ item { itemnumber } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Get borrower's reserves
my @ reserves = GetReservesFromBorrowernumber ( $ borrowernumber , undef ) ;
@ -778,15 +902,23 @@ sub CancelHold {
}
# if the item was not reserved by the borrower, returns an error code
<< << << < HEAD:C4 /ILSDI/ Services . pm
if ( not grep { $ itemnumber eq $ _ } @ reserveditems ) {
return { message = > 'NotCanceled' } ;
}
=== === =
return { code = > 'NotCanceled' } unless any { $ itemnumber eq $ _ } @ reserveditemnumbers ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
# Cancel the reserve
CancelReserve ( $ itemnumber , undef , $ borrowernumber ) ;
<< << << < HEAD:C4 /ILSDI/ Services . pm
return { message = > 'Canceled' } ;
=== === =
return { code = > 'Canceled' } ;
>> >> >> > [ MT2306_2271 ] ILS - DI Message codes consistence:C4 / ILSDI . pm
}
1 ;