Ard Schrijvers pushed to branch master at cms-community / hippo-site-toolkit


Commits:
c9452323 by Ard Schrijvers at 2018-03-14T16:03:04+01:00
HSTTWO-4272 change the default sort on property for preview

Since preview variants do not have a publication date, we should not sort
on that field. Sorting on the modification date for preview makes much
more sense

- - - - -


1 changed file:

- 
components/restapi/src/main/java/org/hippoecm/hst/restapi/content/DocumentsResource.java


Changes:

=====================================
components/restapi/src/main/java/org/hippoecm/hst/restapi/content/DocumentsResource.java
=====================================
--- 
a/components/restapi/src/main/java/org/hippoecm/hst/restapi/content/DocumentsResource.java
+++ 
b/components/restapi/src/main/java/org/hippoecm/hst/restapi/content/DocumentsResource.java
@@ -49,13 +49,14 @@ import org.onehippo.cms7.services.contenttype.ContentType;
 import org.onehippo.cms7.services.search.query.AndClause;
 import org.onehippo.cms7.services.search.query.Query;
 import org.onehippo.cms7.services.search.query.QueryUtils;
-import org.onehippo.cms7.services.search.query.constraint.ExistsConstraint;
 import org.onehippo.cms7.services.search.result.QueryResult;
 import org.onehippo.cms7.services.search.service.SearchService;
 import org.onehippo.cms7.services.search.service.SearchServiceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static 
org.hippoecm.hst.restapi.content.DocumentsResource.SortOrder.DESCENDING;
+import static 
org.hippoecm.repository.HippoStdPubWfNodeType.HIPPOSTDPUBWF_LAST_MODIFIED_DATE;
 import static 
org.hippoecm.repository.HippoStdPubWfNodeType.HIPPOSTDPUBWF_PUBLICATION_DATE;
 import static org.hippoecm.repository.api.HippoNodeType.HIPPO_AVAILABILITY;
 import static org.hippoecm.repository.api.HippoNodeType.NT_DOCUMENT;
@@ -150,10 +151,29 @@ public class DocumentsResource extends AbstractResource {
         return Arrays.asList(attributeString.split(","));
     }
 
+
+    private List<String> getOrderBy(final String orderBy, final boolean 
preview) {
+        if (StringUtils.isNotBlank(orderBy)) {
+            return parseOrderBy(orderBy);
+        }
+        if (preview) {
+            return Collections.singletonList(HIPPOSTDPUBWF_LAST_MODIFIED_DATE);
+        }
+        return  Collections.singletonList(HIPPOSTDPUBWF_PUBLICATION_DATE);
+    }
+
+
     private List<String> parseOrderBy(final String orderBy) {
         return Arrays.asList(StringUtils.split(orderBy, ','));
     }
 
+    private List<SortOrder> getSortOrder(final String sortOrder) {
+        if (StringUtils.isNotBlank(sortOrder)) {
+            return parseSortOrder(sortOrder);
+        }
+        return Collections.singletonList(DESCENDING);
+    }
+
     private List<SortOrder> parseSortOrder(final String sortOrder) {
         final List<SortOrder> sortOrders = new LinkedList<>();
         try {
@@ -179,22 +199,25 @@ public class DocumentsResource extends AbstractResource {
                                  @QueryParam("_max") final String maxString,
                                  @QueryParam("_query") final String 
queryString,
                                  @QueryParam("_nodetype") final String 
nodeTypeString,
-                                 @QueryParam("_orderBy") 
@DefaultValue(HIPPOSTDPUBWF_PUBLICATION_DATE) final String orderBy,
-                                 @QueryParam("_sortOrder") 
@DefaultValue("descending") final String sortOrder,
+                                 @QueryParam("_orderBy") final String orderBy,
+                                 @QueryParam("_sortOrder") final String 
sortOrder,
                                  @QueryParam("_attributes") final String 
attributeString) {
         try {
+
+            final boolean preview = RequestContextProvider.get().isPreview();
+
             final List<String> includedAttributes = 
parseAttributes(attributeString);
             final ResourceContext context = 
getResourceContextFactory().createResourceContext(includedAttributes);
             final int offset = parseOffset(offsetString);
             final int max = parseMax(maxString);
             final String parsedQuery = parseQuery(queryString);
             final String parsedNodeType = parseNodeType(context, 
nodeTypeString);
-            final List<String> parsedOrderBys = parseOrderBy(orderBy);
-            final List<SortOrder> parsedSortOrders = parseSortOrder(sortOrder);
+            final List<String> parsedOrderBys = getOrderBy(orderBy, preview);
+            final List<SortOrder> parsedSortOrders = getSortOrder(sortOrder);
             checkOrderParameters(parsedOrderBys, parsedSortOrders);
 
             final String availability;
-            if (RequestContextProvider.get().isPreview() ) {
+            if (preview) {
                 availability = "preview";
             } else {
                 availability = "live";



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-site-toolkit/commit/c94523232fbfd5490c2562a9a99bf0c38aee5d35

---
View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-site-toolkit/commit/c94523232fbfd5490c2562a9a99bf0c38aee5d35
You're receiving this email because of your account on code.onehippo.org.
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to