changes in dmp deposit model
This commit is contained in:
parent
122da0b856
commit
cd4bb94976
|
@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import eu.eudat.depositinterface.ckanrepository.config.CkanConfig;
|
import eu.eudat.depositinterface.ckanrepository.config.CkanConfig;
|
||||||
import eu.eudat.depositinterface.ckanrepository.config.ConfigLoader;
|
import eu.eudat.depositinterface.ckanrepository.config.ConfigLoader;
|
||||||
import eu.eudat.depositinterface.models.DMPDepositModel;
|
import eu.eudat.depositinterface.models.DMPDepositModel;
|
||||||
|
import eu.eudat.depositinterface.models.FileEnvelope;
|
||||||
import eu.eudat.depositinterface.repository.RepositoryDeposit;
|
import eu.eudat.depositinterface.repository.RepositoryDeposit;
|
||||||
import eu.eudat.depositinterface.repository.RepositoryDepositConfiguration;
|
import eu.eudat.depositinterface.repository.RepositoryDepositConfiguration;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
@ -121,14 +122,26 @@ public class CkanDeposit implements RepositoryDeposit {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void uploadFiles(DMPDepositModel dmpDepositModel, String id) throws IOException {
|
private void uploadFiles(DMPDepositModel dmpDepositModel, String id) throws IOException {
|
||||||
this.uploadFile(dmpDepositModel.getPdfFileName(), dmpDepositModel.getPdfFile(), id);
|
this.uploadFile(dmpDepositModel.getPdfFile().getFilename(), dmpDepositModel.getPdfFile().getFile(), id);
|
||||||
|
|
||||||
String contentDisposition = dmpDepositModel.getRdaJson().getHeaders().get("Content-Disposition").get(0);
|
FileEnvelope rdaJsonEnvelope = dmpDepositModel.getRdaJsonFile();
|
||||||
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
|
responseHeaders.setContentLength(rdaJsonEnvelope.getFile().length());
|
||||||
|
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
|
||||||
|
responseHeaders.set("Content-Disposition", "attachment;filename=" + rdaJsonEnvelope.getFilename());
|
||||||
|
responseHeaders.set("Access-Control-Expose-Headers", "Content-Disposition");
|
||||||
|
responseHeaders.get("Access-Control-Expose-Headers").add("Content-Type");
|
||||||
|
|
||||||
|
byte[] content = Files.readAllBytes(rdaJsonEnvelope.getFile().toPath());
|
||||||
|
|
||||||
|
ResponseEntity<byte[]> jsonFile = new ResponseEntity<>(content, responseHeaders, HttpStatus.OK);
|
||||||
|
|
||||||
|
String contentDisposition = jsonFile.getHeaders().get("Content-Disposition").get(0);
|
||||||
String jsonFileName = contentDisposition.substring(contentDisposition.lastIndexOf('=') + 1);
|
String jsonFileName = contentDisposition.substring(contentDisposition.lastIndexOf('=') + 1);
|
||||||
File rdaJson = new File(this.environment.getProperty("storage.temp") + jsonFileName);
|
File rdaJson = new File(this.environment.getProperty("storage.temp") + jsonFileName);
|
||||||
OutputStream output = new FileOutputStream(rdaJson);
|
OutputStream output = new FileOutputStream(rdaJson);
|
||||||
try {
|
try {
|
||||||
output.write(Objects.requireNonNull(dmpDepositModel.getRdaJson().getBody()));
|
output.write(Objects.requireNonNull(jsonFile.getBody()));
|
||||||
output.flush();
|
output.flush();
|
||||||
output.close();
|
output.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|
Loading…
Reference in New Issue