From 0e204f0f32f4bcae2fdb42cc4493423363191b08 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Tue, 25 Aug 2015 11:33:04 +0200 Subject: [PATCH] Bug 14721 - OAI-PMH must return error when no results When getting records from OAI-PMH, an error must be returned if there is no results. See : http://www.openarchives.org/OAI/openarchivesprotocol.html#ErrorConditions Test plan : - Enable OAI webservice - Perform a query that will return no results. ie : /cgi-bin/koha/oai.pl?verb=ListRecords&metadataPrefix=marcxml&from=2099-12-30&until=2099-12-31 => Without patch you get a response with : => With patch you get a response with error code : No records match the given criteria - Check a good query returns still results - Same test with ListIdentifiers verb Signed-off-by: Mirko Tietgen Signed-off-by: Jonathan Druart --- opac/oai.pl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/opac/oai.pl b/opac/oai.pl index ab56d79..573f01a 100755 --- a/opac/oai.pl +++ b/opac/oai.pl @@ -411,6 +411,14 @@ sub new { ) ); } + # Return error if no results + unless ($count) { + return HTTP::OAI::Response->new( + requestURL => $repository->self_url(), + errors => [ new HTTP::OAI::Error( code => 'noRecordsMatch' ) ], + ); + } + return $self; } @@ -586,6 +594,14 @@ sub new { } } + # Return error if no results + unless ($count) { + return HTTP::OAI::Response->new( + requestURL => $repository->self_url(), + errors => [ new HTTP::OAI::Error( code => 'noRecordsMatch' ) ], + ); + } + return $self; } -- 2.1.0