From b39174755f173d53d75132b1db3d9b42b11a253a Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Wed, 23 May 2018 16:26:06 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@167718 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/proxies/DefaultItemManager.java | 26 +++++++++++++++++++ .../client/proxies/ItemManagerClient.java | 3 +++ .../org/gcube/data/access/fs/TestCall.java | 15 +++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java index abacb2b..b07a07c 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/DefaultItemManager.java @@ -7,12 +7,15 @@ import javax.ws.rs.client.Entity; import javax.ws.rs.client.Invocation; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedHashMap; +import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; import org.gcube.common.clients.Call; import org.gcube.common.clients.delegates.ProxyDelegate; import org.gcube.common.storagehub.client.StreamDescriptor; import org.gcube.common.storagehub.model.items.AbstractFileItem; +import org.gcube.common.storagehub.model.items.FolderItem; import org.gcube.common.storagehub.model.items.Item; import org.gcube.common.storagehub.model.service.ItemList; import org.gcube.common.storagehub.model.service.ItemWrapper; @@ -159,6 +162,29 @@ public class DefaultItemManager implements ItemManagerClient { } } + @Override + public FolderItem createFolder(String parentId, String name, String description) { + Call> call = new Call>() { + @Override + public ItemWrapper call(WebTarget manager) throws Exception { + WebTarget myManager = manager.path(parentId) + .path("create").path("FOLDER").queryParam("name", name).queryParam("description", description); + Invocation.Builder builder = myManager.request(); + + MultivaluedMap formData = new MultivaluedHashMap(); + formData.add("name", name); + formData.add("description", description); + ItemWrapper response = builder.post(Entity.form(formData),ItemWrapper.class); + return response; + } + }; + try { + ItemWrapper result = delegate.make(call); + return result.getItem(); + }catch(Exception e) { + throw new RuntimeException(e); + } + } @Override public List getAnchestors(String id, String... excludeNodes) { diff --git a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java index e11321b..44ace2f 100644 --- a/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java +++ b/src/main/java/org/gcube/common/storagehub/client/proxies/ItemManagerClient.java @@ -5,6 +5,7 @@ import java.util.List; import org.gcube.common.storagehub.client.StreamDescriptor; import org.gcube.common.storagehub.model.items.AbstractFileItem; +import org.gcube.common.storagehub.model.items.FolderItem; import org.gcube.common.storagehub.model.items.Item; @@ -26,5 +27,7 @@ public interface ItemManagerClient { StreamDescriptor download(String id); T uploadFile(InputStream stream, String parentId, String fileName, String description); + + FolderItem createFolder(String parentId, String name, String description); } 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 58d92fd..45d7a32 100644 --- a/src/test/java/org/gcube/data/access/fs/TestCall.java +++ b/src/test/java/org/gcube/data/access/fs/TestCall.java @@ -58,10 +58,13 @@ public class TestCall { @Test public void getById() throws Exception{ final ItemManagerClient client = AbstractPlugin.item().build(); - List items = client.getChildren("07cd8d55-a35b-4445-9680-c98f158c55de",10, 5, "hl:accounting", "jcr:content"); - + List items = client.getAnchestors("29b417e2-dc2f-419a-be0b-7f49e76c9d7c", "hl:accounting", "jcr:content"); + System.out.println("items are "+items.size()); + for (Item item: items) + System.out.println(item.getName()+ " "+item.getPath()); + System.in.read(); } @@ -102,6 +105,14 @@ public class TestCall { } + @Test + public void createFolder() { + ItemManagerClient itemclient = AbstractPlugin.item().build(); + WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); + itemclient.createFolder(wsclient.getWorkspace().getId(),"terzo tentativo","secondo tentativo"); + + } + @Test public void search() {