package eu.eudat.file.transformer.controller; import eu.eudat.file.transformer.interfaces.FileTransformerClient; import eu.eudat.file.transformer.interfaces.FileTransformerConfiguration; import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel; import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel; import eu.eudat.file.transformer.models.misc.FileEnvelope; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/file") public class FileTransformerController { private final FileTransformerClient fileTransformerExecutor; @Autowired public FileTransformerController(FileTransformerClient fileTransformerExecutor) { this.fileTransformerExecutor = fileTransformerExecutor; } @PostMapping("/export/dmp") public FileEnvelope exportDmp(@RequestBody DmpFileTransformerModel dmpDepositModel) throws Exception { return fileTransformerExecutor.exportDmp(dmpDepositModel); } @PostMapping("/export/description") public FileEnvelope exportDescription(@RequestBody DescriptionFileTransformerModel descriptionFileTransformerModel, @RequestParam(value = "format",required = false)String format, @RequestParam(value = "descriptionId",required = false) String descriptionId) throws Exception { return fileTransformerExecutor.exportDescription(descriptionFileTransformerModel, format); } @PostMapping("/import/dmp") public DmpFileTransformerModel importFileToDmp(@RequestBody FileEnvelope fileEnvelope) { return fileTransformerExecutor.importDmp(fileEnvelope); } @PostMapping("/import/description") public DescriptionFileTransformerModel importFileToDescription(@RequestBody FileEnvelope fileEnvelope) { return fileTransformerExecutor.importDescription(fileEnvelope); } @GetMapping("/formats") public FileTransformerConfiguration getSupportedFormats() { return fileTransformerExecutor.getConfiguration(); } }