ckan2zenodo-publisher-widget/src/main/java/org/gcube/portlets/widgets/ckan2zenodopublisher/server/CkanToZenodoPublisherServic...

84 lines
3.4 KiB
Java
Raw Normal View History

2019-12-06 17:23:52 +01:00
package org.gcube.portlets.widgets.ckan2zenodopublisher.server;
2019-12-10 16:31:06 +01:00
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.Creator;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.AccessRights;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.DepositionMetadata.UploadType;
2019-12-12 18:32:30 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.FileDeposition;
2019-12-10 16:31:06 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.RelatedIdentifier;
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.RelatedIdentifier.Relation;
2019-12-09 17:17:05 +01:00
import org.gcube.data.publishing.ckan2zenodo.model.zenodo.ZenodoDeposition;
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZendoPublisherWidgetConstant;
2019-12-06 17:23:52 +01:00
import org.gcube.portlets.widgets.ckan2zenodopublisher.client.CkanToZenodoPublisherService;
2019-12-10 16:31:06 +01:00
import org.gcube.portlets.widgets.ckan2zenodopublisher.server.converter.ItemToZenodoConverter;
2019-12-09 11:56:04 +01:00
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.CatalogueItem;
2019-12-09 17:17:05 +01:00
import org.gcube.portlets.widgets.ckan2zenodopublisher.shared.wrapped.ZenodoItem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2019-12-06 17:23:52 +01:00
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
2019-12-09 17:17:05 +01:00
public class CkanToZenodoPublisherServiceImpl extends RemoteServiceServlet implements CkanToZenodoPublisherService {
2019-12-06 17:23:52 +01:00
2019-12-09 17:17:05 +01:00
private static Logger LOG = LoggerFactory.getLogger(CkanToZenodoPublisherServiceImpl.class);
2019-12-06 17:23:52 +01:00
2019-12-09 17:17:05 +01:00
@Override
public String publishOnZenodo(CatalogueItem item) throws Exception {
2019-12-06 17:23:52 +01:00
2019-12-09 17:17:05 +01:00
try {
2019-12-09 15:42:22 +01:00
2019-12-18 11:58:49 +01:00
//Ckan2ZenodoImpl.publish(item.getItemName());
2019-12-09 17:17:05 +01:00
return null;
} catch (Exception e) {
String error = "Error on publishing on Zenodo the catalogue item: "+item.getItemName();
LOG.error(error, e);
String clientError = String.format("%s. %s", error, CkanToZendoPublisherWidgetConstant.MSG_OF_ERROR_REFRESH_AND_TRY_AGAIN_OR_CONTACT_THE_SUPPORT);
throw new Exception(clientError);
}
}
@Override
public ZenodoItem convertToZenodoItem(CatalogueItem item) throws Exception {
try {
2019-12-10 16:31:06 +01:00
//TO TEST
2019-12-09 17:17:05 +01:00
ZenodoDeposition zd = new ZenodoDeposition();
2019-12-12 18:32:30 +01:00
zd.setTitle("My beautiful title");
ArrayList<FileDeposition> files = new ArrayList<FileDeposition>();
for (int i = 0; i < 5; i++) {
FileDeposition fd = new FileDeposition();
int index = i+1;
fd.setFilename("My file "+index);
files.add(fd);
}
zd.setFiles(files);
2019-12-10 16:31:06 +01:00
DepositionMetadata metadata = new DepositionMetadata(UploadType.dataset, new Date(), "My title", new ArrayList<Creator>(), "My desr", AccessRights.open);
2019-12-12 18:32:30 +01:00
metadata.setDescription("My beautiful description");
2019-12-10 16:31:06 +01:00
List<RelatedIdentifier> related_identifiers = new ArrayList<RelatedIdentifier>(1);
related_identifiers.add(new RelatedIdentifier("12345", Relation.cites));
metadata.setRelated_identifiers(related_identifiers);
zd.setMetadata(metadata);
return ItemToZenodoConverter.toZenodoItem(zd);
2019-12-09 17:17:05 +01:00
} catch (Exception e) {
String error = "Error on converting the catalogue item: "+item.getItemName();
LOG.error(error, e);
String clientError = String.format("%s. %s", error, CkanToZendoPublisherWidgetConstant.MSG_OF_ERROR_REFRESH_AND_TRY_AGAIN_OR_CONTACT_THE_SUPPORT);
throw new Exception(clientError);
}
}
2019-12-06 17:23:52 +01:00
}