80 lines
2.6 KiB
Java
80 lines
2.6 KiB
Java
package eu.dnetlib.is.context;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.LogFactory;
|
|
import org.dom4j.DocumentException;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import eu.dnetlib.is.context.model.Category;
|
|
import eu.dnetlib.is.context.model.Context;
|
|
import eu.dnetlib.is.context.model.repository.CategoryRepository;
|
|
import eu.dnetlib.is.context.model.repository.ConceptLevel0Repository;
|
|
import eu.dnetlib.is.context.model.repository.ConceptLevel1Repository;
|
|
import eu.dnetlib.is.context.model.repository.ConceptLevel2Repository;
|
|
import eu.dnetlib.is.context.model.repository.ContextRepository;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/contexts")
|
|
public class ContextRestController {
|
|
|
|
@Autowired
|
|
private ContextRepository contextRepository;
|
|
@Autowired
|
|
private CategoryRepository categoryRepository;
|
|
@Autowired
|
|
private ConceptLevel0Repository conceptLevel0Repository;
|
|
@Autowired
|
|
private ConceptLevel1Repository conceptLevel1Repository;
|
|
@Autowired
|
|
private ConceptLevel2Repository conceptLevel2Repository;
|
|
|
|
@Autowired
|
|
private ContextImporter contextImporter;
|
|
|
|
private static final Log log = LogFactory.getLog(ContextRestController.class);
|
|
|
|
@GetMapping("/")
|
|
public List<Context> listContexts() {
|
|
return contextRepository.findAll()
|
|
.stream()
|
|
.sorted((v1, v2) -> StringUtils.compareIgnoreCase(v1.getId(), v2.getId()))
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
@GetMapping("/{ctxId}")
|
|
public Context getContext(@PathVariable final String ctxId) {
|
|
return contextRepository.getById(ctxId);
|
|
}
|
|
|
|
@GetMapping("/{ctxId}/categories")
|
|
public Iterable<Category> listCategories(@PathVariable final String ctxId) {
|
|
return categoryRepository.findByContextIdOrderById(ctxId);
|
|
}
|
|
|
|
@PostMapping(value = "/load", consumes = "text/plain")
|
|
public List<String> loadFromOldProfile(final HttpServletRequest request) throws DocumentException, IOException {
|
|
|
|
final String xml = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
|
|
|
|
contextImporter.loadFromOldProfile(xml);
|
|
|
|
return Arrays.asList("Done.");
|
|
}
|
|
|
|
}
|