53 lines
2.4 KiB
Java
53 lines
2.4 KiB
Java
package eu.eudat.file.transformer.controller;
|
|
|
|
import eu.eudat.file.transformer.executor.FileTransformerExecutor;
|
|
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 eu.eudat.file.transformer.model.file.FileVariant;
|
|
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 FileTransformerExecutor fileTransformerExecutor;
|
|
|
|
@Autowired
|
|
public FileTransformerController(FileTransformerExecutor fileTransformerExecutor) {
|
|
this.fileTransformerExecutor = fileTransformerExecutor;
|
|
}
|
|
|
|
@PostMapping("/export/dmp")
|
|
public FileEnvelope exportDmp(@RequestBody DmpFileTransformerModel dmpDepositModel, @RequestParam(value = "format",required = false)String format) throws Exception {
|
|
ExtraPropertiesModel properties = new ExtraPropertiesModel();
|
|
properties.setFormat(format != null ? format : "docx");
|
|
return fileTransformerExecutor.exportDmp(dmpDepositModel, properties);
|
|
}
|
|
|
|
@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 {
|
|
ExtraPropertiesModel properties = new ExtraPropertiesModel();
|
|
properties.setFormat(format != null ? format : "docx");
|
|
return fileTransformerExecutor.exportDescription(descriptionFileTransformerModel, properties);
|
|
}
|
|
|
|
@PostMapping("/import/dmp")
|
|
public DmpFileTransformerModel importFileToDmp(@RequestBody FileEnvelope fileEnvelope) {
|
|
return fileTransformerExecutor.importFileToDmp(fileEnvelope);
|
|
}
|
|
|
|
@PostMapping("/import/description")
|
|
public DescriptionFileTransformerModel importFileToDescription(@RequestBody FileEnvelope fileEnvelope) {
|
|
return fileTransformerExecutor.importFileToDescription(fileEnvelope);
|
|
}
|
|
|
|
@GetMapping("/formats")
|
|
public List<FileVariant> getSupportedFormats() {
|
|
return fileTransformerExecutor.getSupportedFileFormats();
|
|
}
|
|
}
|