file-transformer-docx/web/src/main/java/eu/eudat/file/transformer/controller/FileTransformerController.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();
}
}