dnet-applications/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterController...

64 lines
1.9 KiB
Java
Raw Normal View History

2023-06-28 15:24:18 +02:00
package eu.dnetlib.openaire.community.importer;
2023-06-16 11:12:24 +02:00
2023-06-26 14:56:40 +02:00
import java.io.IOException;
2023-06-16 11:12:24 +02:00
import java.util.List;
2023-06-26 14:56:40 +02:00
import java.util.Map;
import java.util.Set;
2023-06-16 11:12:24 +02:00
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
2023-06-28 14:23:56 +02:00
import org.springframework.web.bind.annotation.RequestParam;
2023-06-16 11:12:24 +02:00
import org.springframework.web.bind.annotation.RestController;
2023-06-26 14:56:40 +02:00
import com.google.common.collect.Sets;
import eu.dnetlib.openaire.common.ISClient;
2023-06-28 15:28:12 +02:00
import eu.dnetlib.openaire.community.model.DbOrganization;
2023-06-16 11:12:24 +02:00
import eu.dnetlib.openaire.exporter.exceptions.CommunityException;
2023-06-26 14:56:40 +02:00
import eu.dnetlib.openaire.exporter.model.context.Context;
2023-06-16 11:12:24 +02:00
@RestController
public class CommunityImporterController {
2023-06-26 14:56:40 +02:00
public final static Set<String> communityBlackList = Sets.newHashSet("fet-fp7", "fet-h2020");
2023-06-16 11:12:24 +02:00
@Autowired
2023-06-28 14:23:56 +02:00
private CommunityImporterService importer;
2023-06-16 11:12:24 +02:00
@Autowired
2023-06-26 14:56:40 +02:00
private ISClient isClient;
2023-06-16 11:12:24 +02:00
2023-06-28 14:23:56 +02:00
@GetMapping("/community_importer/communities")
2023-06-16 11:12:24 +02:00
public List<String> importProfiles() throws CommunityException {
2023-06-26 14:56:40 +02:00
final Map<String, Context> contextMap = getContextMap();
final List<String> list = contextMap.keySet()
2023-06-16 11:12:24 +02:00
.stream()
2023-06-26 14:56:40 +02:00
.filter(id -> !communityBlackList.contains(id))
2023-06-16 11:12:24 +02:00
.collect(Collectors.toList());
2023-06-26 14:56:40 +02:00
list.forEach(id -> {
2023-06-28 14:23:56 +02:00
importer.importCommunity(contextMap.get(id));
2023-06-26 14:56:40 +02:00
});
2023-06-16 11:12:24 +02:00
return list;
}
2023-06-28 14:23:56 +02:00
@GetMapping("/community_importer/propagationOrgs")
public List<DbOrganization> importPropagationOrgs(@RequestParam final String profileId,
@RequestParam(required = false, defaultValue = "false") final boolean simulation) throws Exception {
final String xml = isClient.getProfile(profileId);
return importer.importPropagationOrganizationsFromProfile(xml, simulation);
}
2023-06-26 14:56:40 +02:00
private Map<String, Context> getContextMap() throws CommunityException {
try {
return isClient.getCommunityContextMap();
} catch (final IOException e) {
throw new CommunityException(e);
}
}
2023-06-16 11:12:24 +02:00
}