Author: andre
Date: 2010-07-01 18:51:16 +0200 (Thu, 01 Jul 2010)
New Revision: 42785

Modified:
   openimages/trunk/src/main/webapp/feeds/oai/index.jspx
Log:
OIP-125 just two (rather stupid) FAIL!'s left on http://re.cs.uct.ac.za/ : a 
non-excisting parameter (big deal) and a twice the same parameter (dito)


Modified: openimages/trunk/src/main/webapp/feeds/oai/index.jspx
===================================================================
--- openimages/trunk/src/main/webapp/feeds/oai/index.jspx       2010-07-01 
15:26:39 UTC (rev 42784)
+++ openimages/trunk/src/main/webapp/feeds/oai/index.jspx       2010-07-01 
16:51:16 UTC (rev 42785)
@@ -21,6 +21,16 @@
     <mm:import id="offset">0</mm:import>
   
     <mm:import externid="verb" />
+    <c:if test="${!empty verb
+              and verb ne 'Identify' 
+              and verb ne 'ListMetadataFormats' 
+              and verb ne 'ListSets'
+              and verb ne 'ListIdentifiers'
+              and verb ne 'ListRecords'
+              and verb ne 'GetRecord'}">
+      <c:set var="error" value="badVerb" />
+    </c:if>
+    
     <mm:import externid="identifier" />
     <mm:import externid="metadataPrefix" />
     <mm:import externid="set" />
@@ -87,8 +97,10 @@
     
     <!-- fill parameters when empty -->
     <c:choose>
-      <c:when test="${!empty metadataPrefix and metadataPrefix ne 'oai_dc'}">
-        <c:set var="error" value="badArgument" />
+      <c:when test="${verb ne 'Identify' and verb ne 'ListMetadataFormats' and 
(empty metadataPrefix or metadataPrefix ne 'oai_dc')}">
+        <c:if test="${empty error}">
+          <c:set var="error" value="badArgument" />
+        </c:if>
       </c:when>
       <c:otherwise>
         <c:set var="metadataPrefix">oai_dc</c:set>
@@ -107,11 +119,18 @@
       </responseDate>
   
       <c:choose>
+        <c:when test="${error eq 'badVerb'}">
+          <request>${requesturl}</request>
+          <error code="badVerb">
+            Value of the verb argument is not a legal OAI-PMH verb, the verb 
argument is missing, 
+            or the verb argument is repeated. 
+          </error>
+        </c:when>
         <c:when test="${error eq 'badArgument'}">
           <request>${requesturl}</request>
           <error code="badArgument">
             The request includes illegal arguments, is missing required 
arguments, 
-            includes a repeated argument, or values for arguments have an 
illegal syntax.        
+            includes a repeated argument, or values for arguments have an 
illegal syntax.
           </error>
         </c:when>
         <c:when test="${error eq 'badResumptionToken'}">
@@ -141,17 +160,6 @@
           </Identify>
         </c:when>
         
-        <c:when test="${verb eq 'ListMetadataFormats'}">
-          <request verb="${verb}" 
metadataPrefix="${metadataPrefix}">${requesturl}</request>
-          <ListMetadataFormats>
-            <metadataFormat>
-              <metadataPrefix>oai_dc</metadataPrefix>
-              <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
-              
<metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
-            </metadataFormat>
-          </ListMetadataFormats>
-        </c:when>
-        
         <c:when test="${verb eq 'ListSets'}">
           <request verb="${verb}" 
metadataPrefix="${metadataPrefix}">${requesturl}</request>
           <ListSets>
@@ -262,12 +270,51 @@
           </mm:hasnode>
   
           <c:if test="${empty foundone}">
-            <error code="idDoesNotExist">No matching identifier</error>
+            <c:choose>
+              <c:when test="${empty identifier}">
+                <error code="badArgument">
+                  The request includes illegal arguments, is missing required 
arguments, 
+                  includes a repeated argument, or values for arguments have 
an illegal syntax.
+                </error>
+              </c:when>
+              <c:otherwise>
+                <error code="idDoesNotExist">No matching identifier</error>
+              </c:otherwise>
+            </c:choose>
           </c:if>
         </c:when>
+
+        <c:when test="${verb eq 'ListMetadataFormats'}">
+          <mm:hasnode number="${record}">
+            <c:set var="hasnode" value="true" />
+          </mm:hasnode>
+          <c:choose>
+            <c:when test="${!empty identifier and empty hasnode}">
+              <request>${requesturl}</request>
+              <error code="badArgument">
+                The request includes illegal arguments, is missing required 
arguments, 
+                includes a repeated argument, or values for arguments have an 
illegal syntax.
+              </error>
+            </c:when>
+            <c:otherwise>
+              <request verb="${verb}" 
metadataPrefix="${metadataPrefix}">${requesturl}</request>
+              <ListMetadataFormats>
+                <metadataFormat>
+                  <metadataPrefix>oai_dc</metadataPrefix>
+                  
<schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema>
+                  
<metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace>
+                </metadataFormat>
+              </ListMetadataFormats>
+            </c:otherwise>
+          </c:choose>
+        </c:when>
         
         <c:otherwise>
-          <request verb="${verb}" 
metadataPrefix="${metadataPrefix}">${requesturl}</request>
+          <request>${requesturl}</request>
+          <error code="badVerb">
+            Value of the verb argument is not a legal OAI-PMH verb, the verb 
argument is missing, 
+            or the verb argument is repeated. 
+          </error>
         </c:otherwise>
       
       </c:choose>

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to