79 lines
2.3 KiB
Java
79 lines
2.3 KiB
Java
|
|
package eu.dnetlib.dhp.oa.graph.dump;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import eu.dnetlib.dhp.communityapi.model.CommunityModel;
|
|
import eu.dnetlib.dhp.communityapi.model.CommunitySummary;
|
|
import eu.dnetlib.dhp.oa.graph.dump.community.CommunityMap;
|
|
import eu.dnetlib.dhp.oa.graph.dump.csv.Constants;
|
|
import eu.dnetlib.dhp.utils.DHPUtils;
|
|
|
|
public class QueryCommunityAPI {
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(QueryCommunityAPI.class);
|
|
|
|
public CommunityMap getCommunityMap(boolean singleCommunity, String communityId)
|
|
throws IOException {
|
|
if (singleCommunity)
|
|
return getMap(Arrays.asList(getCommunity(communityId)));
|
|
return getMap(getValidCommunities());
|
|
|
|
}
|
|
|
|
private CommunityMap getMap(List<CommunityModel> communities) {
|
|
final CommunityMap map = new CommunityMap();
|
|
communities.forEach(c -> map.put(c.getId(), c.getName()));
|
|
return map;
|
|
}
|
|
|
|
public List<String> getCommunityCsv(List<String> comms) {
|
|
return comms.stream().map(c -> {
|
|
try {
|
|
CommunityModel community = getCommunity(c);
|
|
StringBuilder builder = new StringBuilder();
|
|
builder.append(DHPUtils.md5(community.getId()));
|
|
builder.append(Constants.SEP);
|
|
builder.append(community.getName());
|
|
builder.append(Constants.SEP);
|
|
builder.append(community.getId());
|
|
builder.append(Constants.SEP);
|
|
builder
|
|
.append(
|
|
community.getDescription());
|
|
return builder.toString();
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
private List<CommunityModel> getValidCommunities() throws IOException {
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
return mapper
|
|
.readValue(eu.dnetlib.dhp.communityapi.QueryCommunityAPI.communities(), CommunitySummary.class)
|
|
.stream()
|
|
.filter(
|
|
community -> community.getStatus().equals("all") &&
|
|
(community.getType().equals("ri") || community.getType().equals("community")))
|
|
.collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
private CommunityModel getCommunity(String id) throws IOException {
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
return mapper
|
|
.readValue(eu.dnetlib.dhp.communityapi.QueryCommunityAPI.community(id), CommunityModel.class);
|
|
|
|
}
|
|
}
|