diff --git a/pom.xml b/pom.xml index cd41d00..a940ef0 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.common storagehub-client-library - 1.0.6-SNAPSHOT + 1.0.7-SNAPSHOT storagehub-client-library 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 7d3f7d1..a475ac6 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 @@ -550,15 +550,15 @@ public class DefaultItemManager implements ItemManagerClient { GXInboundResponse response =null; FormDataMultiPart multipart = new FormDataMultiPart(); - + multipart.field("name", fileName); multipart.field("description", description); multipart.field("file", stream, MediaType.APPLICATION_OCTET_STREAM_TYPE); - + Entity entity = Entity.entity(multipart, MediaType.MULTIPART_FORM_DATA); - + response = myManager.post(entity); - + if (response.isErrorResponse()) { if (response.hasException()) { throw response.getException(); @@ -675,8 +675,8 @@ public class DefaultItemManager implements ItemManagerClient { throw new RuntimeException(e1); } } - - + + @Override public String createURL(String parentId, String name, String description,URL url) throws StorageHubException { Call call = new Call() { @@ -831,20 +831,20 @@ public class DefaultItemManager implements ItemManagerClient { public void delete(String id) throws StorageHubException { delete(id, false); } - + @Override public void delete(String id, boolean force) throws StorageHubException { Call call = new Call() { @Override public Void call(GXWebTargetAdapterRequest manager) throws Exception { Objects.requireNonNull(id, "id cannot be null"); - + HashMap queryParam = new HashMap(); queryParam.put("force", new Object[] {force}); - + GXWebTargetAdapterRequest myManager = manager.path(id); GXInboundResponse response = myManager.queryParams(queryParam).delete(); - + if (response.isErrorResponse()) { if (response.hasException()) throw response.getException(); @@ -929,30 +929,30 @@ public class DefaultItemManager implements ItemManagerClient { } } - - + + @Override public boolean canWriteInto(String id) throws StorageHubException { Call call = new Call() { @Override public Boolean call(GXWebTargetAdapterRequest manager) throws Exception { Objects.requireNonNull(id, "id cannot be null"); - + GXWebTargetAdapterRequest myManager = manager.path(id).path("acls").path("write"); - - + + GXInboundResponse response = myManager.get(); - + if (response.isErrorResponse()) { if (response.hasException()) throw response.getException(); else throw new BackendGenericError(); } - - + + return response.getSource().readEntity(Boolean.class); - + } }; @@ -964,9 +964,9 @@ public class DefaultItemManager implements ItemManagerClient { throw new RuntimeException(e1); } } - - - + + + @Override public String changeACL(String id, String user, AccessType accessType) throws StorageHubException { Call call = new Call() { @@ -974,10 +974,10 @@ public class DefaultItemManager implements ItemManagerClient { public String call(GXWebTargetAdapterRequest manager) throws Exception { Objects.requireNonNull(id, "id cannot be null"); Objects.requireNonNull(user, "user cannot be null"); - - + + GXWebTargetAdapterRequest myManager = manager.path(id).path("acls"); - + try (FormDataMultiPart multipart = new FormDataMultiPart()){ multipart.field("access", accessType, MediaType.APPLICATION_JSON_TYPE); multipart.field("user", user); @@ -1005,6 +1005,44 @@ public class DefaultItemManager implements ItemManagerClient { } } + + + @Override + public String removeSharedFolderAdmin(String id, String user) throws StorageHubException { + Call call = new Call() { + @Override + public String call(GXWebTargetAdapterRequest manager) throws Exception { + Objects.requireNonNull(id, "id cannot be null"); + Objects.requireNonNull(user, "user cannot be null"); + + + GXWebTargetAdapterRequest myManager = manager.path(id).path("acls").path(user); + + + GXInboundResponse response = myManager.delete(); + + + if (response.isErrorResponse()) { + if (response.hasException()) + throw response.getException(); + else + throw new BackendGenericError(); + } + + return response.getSource().readEntity(String.class); + + } + }; + try { + return delegate.make(call); + }catch(StorageHubException e) { + throw e; + }catch(Exception e1) { + throw new RuntimeException(e1); + } + } + + @Override public String copy(String id, String destinationFolderId, String newFilename) throws StorageHubException { Call call = new Call() { @@ -1043,16 +1081,16 @@ public class DefaultItemManager implements ItemManagerClient { } } - - - + + + @Override public String setPublic(String id, boolean publish) throws StorageHubException { Call call = new Call() { @Override public String call(GXWebTargetAdapterRequest manager) throws Exception { Objects.requireNonNull(id, "id cannot be null"); - + GXWebTargetAdapterRequest myManager = manager.path(id) .path("publish"); 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 4a55db0..4aa1592 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 @@ -48,6 +48,8 @@ public interface ItemManagerClient { List getACL(String id) throws StorageHubException; String changeACL(String id, String user, AccessType accessType) throws StorageHubException; + + String removeSharedFolderAdmin(String id, String user) throws StorageHubException; @Deprecated void delete(String id) throws StorageHubException; diff --git a/src/test/java/org/gcube/data/access/fs/Items.java b/src/test/java/org/gcube/data/access/fs/Items.java index d90ab20..bea887c 100644 --- a/src/test/java/org/gcube/data/access/fs/Items.java +++ b/src/test/java/org/gcube/data/access/fs/Items.java @@ -30,8 +30,8 @@ public class Items { @BeforeClass public static void setUp(){ - SecurityTokenProvider.instance.set("b7c80297-e4ed-42ab-ab42-fdc0b8b0eabf-98187548"); - ScopeProvider.instance.set("/gcube"); + SecurityTokenProvider.instance.set("257800d8-24bf-4bae-83cd-ea99369e7dd6-843339462"); + ScopeProvider.instance.set("/d4science.research-infrastructures.eu"); } @@ -110,8 +110,8 @@ public class Items { StorageHubClient shc = new StorageHubClient(); FileContainer file = null; - try(InputStream is = new FileInputStream(new File("/home/lucio/Downloads/PortletTesting.xlsx"))){ - file = shc.open("1672d620-543e-4c76-b0af-4c46f52cbc82").asFolder().uploadFile(is, "PortletTestingSenzaExt", "graphs"); + try(InputStream is = new FileInputStream(new File("/home/lucio/Downloads/.richiesta speroni.pdf"))){ + file = shc.getWSRoot().uploadFile(is, ".richiesta speroni.pdf", "test"); }