support for POST requests to /portal/descriptionElement/byTaxon and /portal/descripti...
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 24 Jul 2013 08:41:11 +0000 (08:41 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 24 Jul 2013 08:41:11 +0000 (08:41 +0000)
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionListPortalController.java

index bcc1ff008378ed8e83f8634ecca2c0d373d428a1..9dfba779e101c119ee306e3ea401af95327beef8 100644 (file)
@@ -17,6 +17,7 @@ import java.util.UUID;
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
+import org.apache.log4j.Logger;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.stereotype.Controller;\r
 import org.springframework.web.bind.WebDataBinder;\r
@@ -55,6 +56,7 @@ import eu.etaxonomy.cdm.remote.editor.TermBaseListPropertyEditor;
 @RequestMapping(value = {"/portal/description"})\r
 public class DescriptionListPortalController extends IdentifiableListController<DescriptionBase, IDescriptionService> {\r
 \r
+   public static final Logger logger = Logger.getLogger(DescriptionListPortalController.class);\r
 \r
     @Autowired\r
     private ITaxonService taxonService;\r
@@ -145,7 +147,7 @@ public class DescriptionListPortalController extends IdentifiableListController<
     * @return\r
     * @throws IOException\r
     */\r
-   @RequestMapping(value = "/portal/descriptionElement/byFeature", method = RequestMethod.GET)\r
+   @RequestMapping(value = "/portal/descriptionElement/byFeature", method = {RequestMethod.GET, RequestMethod.POST})\r
    public Pager<DescriptionElementBase> doPageDescriptionElementsByFeature(\r
            @RequestParam(value = "features", required = false) DefinedTermBaseList<Feature> features,\r
            @RequestParam(value = "descriptionType", required = true) Class<? extends DescriptionBase> descriptionType,\r
@@ -178,7 +180,7 @@ public class DescriptionListPortalController extends IdentifiableListController<
     * @return\r
     * @throws IOException\r
     */\r
-   @RequestMapping(value = "/portal/descriptionElement/byTaxon", method = RequestMethod.GET)\r
+   @RequestMapping(value = "/portal/descriptionElement/byTaxon", method = {RequestMethod.GET, RequestMethod.POST})\r
    public <T extends DescriptionElementBase> Pager<T> getDescriptionElementsForTaxon(\r
            @RequestParam(value = "taxon", required = true) UUID taxon_uuid,\r
            @RequestParam(value = "features", required = false) DefinedTermBaseList<Feature> features,\r
@@ -200,8 +202,15 @@ public class DescriptionListPortalController extends IdentifiableListController<
                HttpStatusMessage.UUID_NOT_FOUND.send(response);\r
            }\r
        }\r
-       Pager<T> pager = service.pageDescriptionElementsForTaxon(taxon, features.asSet(), type, pageSize,\r
-               pageNumber, getInitializationStrategy());\r
+\r
+       Pager<T> pager = service.pageDescriptionElementsForTaxon(\r
+               taxon,\r
+               (features != null ? features.asSet() : null),\r
+               type,\r
+               pagerParams.getPageSize(),\r
+               pagerParams.getPageIndex(),\r
+               getInitializationStrategy()\r
+              );\r
 \r
        return pager;\r
    }\r