package eu.dnetlib.openaire.community.importer; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.google.common.collect.Sets; import eu.dnetlib.openaire.common.ISClient; import eu.dnetlib.openaire.community.model.DbOrganization; import eu.dnetlib.openaire.exporter.exceptions.CommunityException; import eu.dnetlib.openaire.exporter.model.context.Context; @RestController public class CommunityImporterController { public final static Set communityBlackList = Sets.newHashSet("fet-fp7", "fet-h2020"); @Autowired private CommunityImporterService importer; @Autowired private ISClient isClient; @GetMapping("/community_importer/communities") public List importProfiles() throws CommunityException { final Map contextMap = getContextMap(); final List list = contextMap.keySet() .stream() .filter(id -> !communityBlackList.contains(id)) .collect(Collectors.toList()); list.forEach(id -> { importer.importCommunity(contextMap.get(id)); }); return list; } @GetMapping("/community_importer/propagationOrgs") public List 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); } private Map getContextMap() throws CommunityException { try { return isClient.getCommunityContextMap(); } catch (final IOException e) { throw new CommunityException(e); } } }