ckan-content-moderator-widget/src/main/java/org/gcube/portlets/widgets/ckancontentmoderator/server/CkanContentModeratorService...

92 lines
3.1 KiB
Java
Raw Normal View History

2021-05-07 16:55:35 +02:00
package org.gcube.portlets.widgets.ckancontentmoderator.server;
2021-06-14 17:39:44 +02:00
import java.util.ArrayList;
2021-06-01 18:36:18 +02:00
import java.util.List;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
2021-06-14 17:39:44 +02:00
import org.gcube.datacatalogue.utillibrary.server.cms.CatalogueContentModeratorSystem;
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
import org.gcube.datacatalogue.utillibrary.shared.jackan.model.CkanDataset;
2021-05-07 16:55:35 +02:00
import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModeratorService;
2021-06-14 11:27:53 +02:00
import org.gcube.portlets.widgets.ckancontentmoderator.shared.CatalogueDataset;
2021-06-01 18:36:18 +02:00
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2021-05-07 16:55:35 +02:00
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
2021-06-14 17:39:44 +02:00
public class CkanContentModeratorServiceImpl extends RemoteServiceServlet implements CkanContentModeratorService {
2021-06-14 11:27:53 +02:00
private static Logger LOG = LoggerFactory.getLogger(CkanContentModeratorServiceImpl.class);
2021-05-07 16:55:35 +02:00
@Override
public boolean isContentModeratorEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public void setStatus(String itemId, ItemStatus theStatus) {
// TODO Auto-generated method stub
2021-06-14 17:39:44 +02:00
2021-05-07 16:55:35 +02:00
}
2021-06-01 18:36:18 +02:00
@Override
2021-06-14 17:39:44 +02:00
public List<CatalogueDataset> getListItemsForStatus(ItemStatus theStatus, int limit, int offset) throws Exception {
LOG.info("called getListItemsForStatus with [status: " + theStatus + "], [limit: " + limit + "], [offset: "
+ offset + "]");
List<CatalogueDataset> datasetList = null;
2021-06-01 18:36:18 +02:00
try {
2021-06-14 17:39:44 +02:00
String scope = WsUtil.getCurrentScope(this.getThreadLocalRequest());
GCubeUser user = WsUtil.getCurrentUser(this.getThreadLocalRequest());
2021-06-01 18:36:18 +02:00
String token = WsUtil.getCurrentToken(scope, user.getUsername());
ScopeProvider.instance.set(scope);
SecurityTokenProvider.instance.set(token);
2021-06-14 17:39:44 +02:00
CatalogueContentModeratorSystem cmsInstance = CatalogueCMSFactory.getFactory().getCMSPerScope(scope);
List<CkanDataset> datasets = cmsInstance.getListItemsForStatus(theStatus, limit, offset);
if (datasets != null) {
int size = datasets.size();
datasetList = new ArrayList<CatalogueDataset>(size);
LOG.info("datasetList for input parameters returned by CMS has size: " + size);
for (CkanDataset ckanDataset : datasets) {
CatalogueDataset ds = CatalogueBeansConverter.toCatalogueDataset.apply(ckanDataset);
LOG.debug("converted dataset is: " + ds);
datasetList.add(ds);
}
}
2021-06-01 18:36:18 +02:00
} catch (Exception e) {
2021-06-14 17:39:44 +02:00
LOG.error(e.getMessage(), e);
throw new Exception(
"Error occurrend on reading items for status: " + theStatus + ". Caused by: " + e.getMessage());
2021-06-01 18:36:18 +02:00
}
2021-06-14 17:39:44 +02:00
LOG.info("returning "+datasetList.size()+ " dataset");
return datasetList;
2021-06-01 18:36:18 +02:00
}
2021-05-07 16:55:35 +02:00
@Override
public void approveItem(String itemId) {
2021-06-14 17:39:44 +02:00
LOG.info("Called approve Item: " + itemId);
2021-05-07 16:55:35 +02:00
}
@Override
public void rejectItem(String itemId, boolean permanentlyDelete, String reasonMsg) {
// TODO Auto-generated method stub
2021-06-14 17:39:44 +02:00
2021-05-07 16:55:35 +02:00
}
@Override
public void permanentlyDelete(String itemId) {
// TODO Auto-generated method stub
2021-05-26 17:58:12 +02:00
2021-06-14 17:39:44 +02:00
}
2021-05-07 16:55:35 +02:00
}