git-svn-id: https://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/Common/storagehub-client@181340 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
05b8f286b7
commit
d2baa2dda7
|
@ -4,6 +4,7 @@ public enum ContainerType {
|
||||||
|
|
||||||
FOLDER,
|
FOLDER,
|
||||||
FILE,
|
FILE,
|
||||||
GENERIC_ITEM
|
GENERIC_ITEM,
|
||||||
|
URL
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package org.gcube.common.storagehub.client.dsl;
|
package org.gcube.common.storagehub.client.dsl;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
@ -57,6 +58,21 @@ public class FolderContainer extends ItemContainer<FolderItem>{
|
||||||
return new FileContainer(itemclient, itemclient.uploadFile(stream, this.itemId , filename, description));
|
return new FileContainer(itemclient, itemclient.uploadFile(stream, this.itemId , filename, description));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* creates a {@ExternalLink} inside the folder represented by this FolderContainer
|
||||||
|
*
|
||||||
|
* @param url the url
|
||||||
|
* @param name the name of the item in the workspace
|
||||||
|
* @param description the description of the item in the workspace
|
||||||
|
* @return {@URLContainer} of the Item created
|
||||||
|
* @throws {@InvalidItemException}
|
||||||
|
* @throws {@UserNotAuthorizedException} if user is not authorized to write in this folder
|
||||||
|
*/
|
||||||
|
public URLContainer addUrl(URL url, String name, String description) throws StorageHubException {
|
||||||
|
return new URLContainer(itemclient, itemclient.createURL(this.itemId, name, description, url));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* creates a set of {@Item} in the workspace extracting the Archive
|
* creates a set of {@Item} in the workspace extracting the Archive
|
||||||
|
|
|
@ -2,6 +2,7 @@ package org.gcube.common.storagehub.client.dsl;
|
||||||
|
|
||||||
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||||
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
import org.gcube.common.storagehub.model.items.AbstractFileItem;
|
||||||
|
import org.gcube.common.storagehub.model.items.ExternalLink;
|
||||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||||
import org.gcube.common.storagehub.model.items.Item;
|
import org.gcube.common.storagehub.model.items.Item;
|
||||||
|
|
||||||
|
@ -30,4 +31,10 @@ public class OpenResolver {
|
||||||
return new FileContainer(itemclient, (AbstractFileItem)item);
|
return new FileContainer(itemclient, (AbstractFileItem)item);
|
||||||
else throw new RuntimeException("this item is not a File");
|
else throw new RuntimeException("this item is not a File");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public URLContainer asURL() {
|
||||||
|
if (item instanceof ExternalLink)
|
||||||
|
return new URLContainer(itemclient, (ExternalLink)item);
|
||||||
|
else throw new RuntimeException("this item is not a File");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package org.gcube.common.storagehub.client.dsl;
|
||||||
|
|
||||||
|
import org.gcube.common.storagehub.client.proxies.ItemManagerClient;
|
||||||
|
import org.gcube.common.storagehub.model.items.ExternalLink;
|
||||||
|
|
||||||
|
public class URLContainer extends ItemContainer<ExternalLink> {
|
||||||
|
|
||||||
|
protected URLContainer(ItemManagerClient itemclient, ExternalLink item) {
|
||||||
|
super(itemclient, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected URLContainer(ItemManagerClient itemclient, String itemId) {
|
||||||
|
super(itemclient, itemId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContainerType getType() {
|
||||||
|
return ContainerType.URL;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -675,6 +675,48 @@ public class DefaultItemManager implements ItemManagerClient {
|
||||||
throw new RuntimeException(e1);
|
throw new RuntimeException(e1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String createURL(String parentId, String name, String description,URL url) throws StorageHubException {
|
||||||
|
Call<GXWebTargetAdapterRequest, String> call = new Call<GXWebTargetAdapterRequest, String>() {
|
||||||
|
@Override
|
||||||
|
public String call(GXWebTargetAdapterRequest manager) throws Exception {
|
||||||
|
Objects.requireNonNull(parentId, "parentId cannot be null");
|
||||||
|
Objects.requireNonNull(name, "folder name cannot be null");
|
||||||
|
Objects.requireNonNull(description, "parentId cannot be null");
|
||||||
|
|
||||||
|
|
||||||
|
GXWebTargetAdapterRequest myManager = manager.path(parentId)
|
||||||
|
.path("create").path("URL");
|
||||||
|
|
||||||
|
MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
|
||||||
|
formData.add("name", name);
|
||||||
|
formData.add("description", description);
|
||||||
|
formData.add("value", url.toString());
|
||||||
|
|
||||||
|
|
||||||
|
GXInboundResponse response = myManager.post(Entity.entity(formData, MediaType.APPLICATION_FORM_URLENCODED));
|
||||||
|
|
||||||
|
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
|
@Override
|
||||||
public String createGcubeItem(String parentId, GCubeItem item) throws StorageHubException {
|
public String createGcubeItem(String parentId, GCubeItem item) throws StorageHubException {
|
||||||
|
|
|
@ -40,6 +40,8 @@ public interface ItemManagerClient {
|
||||||
|
|
||||||
String createFolder(String parentId, String name, String description, boolean hidden) throws StorageHubException;
|
String createFolder(String parentId, String name, String description, boolean hidden) throws StorageHubException;
|
||||||
|
|
||||||
|
String createURL(String parentId, String name, String description, URL url) throws StorageHubException;
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
String createFolder(String parentId, String name, String description) throws StorageHubException;
|
String createFolder(String parentId, String name, String description) throws StorageHubException;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@ import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URL;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -54,9 +56,9 @@ public class Items {
|
||||||
|
|
||||||
StorageHubClient shc = new StorageHubClient();
|
StorageHubClient shc = new StorageHubClient();
|
||||||
|
|
||||||
FolderContainer fc = shc.open("7343dd7d-0f2b-4dc7-968e-b856e7073ea8").asFolder();
|
|
||||||
|
|
||||||
fc.newFolder("testLucio","testLucio");
|
shc.getWSRoot().addUrl(new URI("https://www.youtube.com/watch?v=bGef_U0S7Uo").toURL(), "video test 3", "video test descr 3");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue