From e0043388c9a43bd76479df0d6bf6c40e66f5cb47 Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Mon, 7 May 2018 16:05:54 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@167345 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../proxies/DefaultWorkspaceManager.java | 22 ++++++++++++++++--- .../org/gcube/data/access/fs/TestCall.java | 12 ++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java index c3f6e79..7a94f36 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultWorkspaceManager.java @@ -10,6 +10,7 @@ import javax.ws.rs.core.MediaType; import org.gcube.common.clients.Call; import org.gcube.common.clients.delegates.ProxyDelegate; +import org.gcube.common.storagehub.model.expressions.SearchableField; import org.gcube.common.storagehub.model.expressions.SearchableItem; import org.gcube.common.storagehub.model.items.Item; import org.gcube.common.storagehub.model.query.Query; @@ -126,15 +127,30 @@ public class DefaultWorkspaceManager implements WorkspaceManagerClient { WebTarget myManager = manager.path("query"); if (excludeNodes !=null && excludeNodes.length>0) myManager = myManager.queryParam("exclude",excludeNodes); - - myManager = myManager.queryParam("node", query.getSearchableItem().getNodeValue()); + + if (query.getOrderFields() !=null && query.getOrderFields().size() >0) { + for (SearchableField field :query.getOrderFields()) + myManager = myManager.queryParam("o",field); + } + + myManager = myManager.queryParam("n", query.getSearchableItem().getNodeValue()); + + if (query.getLimit()!=-1) + myManager = myManager.queryParam("l", query.getLimit()); + + if (query.getOffset()!=-1) + myManager = myManager.queryParam("f", query.getOffset()); + + ObjectMapper mapper = new ObjectMapper(); String serializedJson = mapper.writeValueAsString(query.getExpression()); System.out.println("serialized json "+serializedJson); - myManager = myManager.queryParam("expr", URLEncoder.encode(serializedJson)); + myManager = myManager.queryParam("e", URLEncoder.encode(serializedJson)); + + System.out.println(myManager.getUri().toString()); Invocation.Builder builder = myManager.request(MediaType.APPLICATION_JSON); ItemList response = builder.get(ItemList.class); diff --git a/src/test/java/org/gcube/data/access/fs/TestCall.java b/src/test/java/org/gcube/data/access/fs/TestCall.java index 91228e8..0d0b3d6 100644 --- a/src/test/java/org/gcube/data/access/fs/TestCall.java +++ b/src/test/java/org/gcube/data/access/fs/TestCall.java @@ -4,6 +4,7 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.nio.file.Files; +import java.util.Calendar; import java.util.List; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; @@ -12,8 +13,12 @@ import org.gcube.common.storagehub.client.StreamDescriptor; import org.gcube.common.storagehub.client.plugins.AbstractPlugin; import org.gcube.common.storagehub.client.proxies.ItemManagerClient; import org.gcube.common.storagehub.client.proxies.WorkspaceManagerClient; +import org.gcube.common.storagehub.model.Paths; import org.gcube.common.storagehub.model.expressions.GenericSearchableItem; import org.gcube.common.storagehub.model.expressions.SearchableItem; +import org.gcube.common.storagehub.model.expressions.date.Before; +import org.gcube.common.storagehub.model.expressions.logical.And; +import org.gcube.common.storagehub.model.expressions.logical.ISDescendant; import org.gcube.common.storagehub.model.expressions.text.Contains; import org.gcube.common.storagehub.model.items.Item; import org.gcube.common.storagehub.model.query.Queries; @@ -97,9 +102,12 @@ public class TestCall { Query> query = Queries.queryFor(Item.class); - query.setExpression(new Contains(GenericSearchableItem.get().title, "Data")); - + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, 2015); + query.setExpression(new And(new Contains(GenericSearchableItem.get().title, "Data"), new ISDescendant(Paths.getPath("/Home/lucio.lelii/Workspace/DataMiner")), new Before(GenericSearchableItem.get().creationTime, calendar ))); + query.setLimit(10); + query.setOrder(GenericSearchableItem.get().title); WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); List items = wsclient.search(query, "hl:accounting", "jcr:content"); System.out.println("items are "+items.size());