pom update, fix dataset response parsing from dataverse api

This commit is contained in:
Aldo Mihasi 2023-02-08 13:03:27 +02:00
parent 640b96e43f
commit cf8f2852d5
2 changed files with 9 additions and 5 deletions

View File

@ -113,6 +113,7 @@
<artifact>*:*</artifact> <artifact>*:*</artifact>
<excludes> <excludes>
<exclude>module-info.class</exclude> <exclude>module-info.class</exclude>
<exclude>javax/**/*</exclude>
</excludes> </excludes>
</filter> </filter>
<!-- </filters>--> <!-- </filters>-->

View File

@ -102,12 +102,15 @@ public class DataverseDeposit implements RepositoryDeposit {
Map<String, Object> datasetJson = this.getDatasetIdentifier(dmpDepositModel.getPreviousDOI()); Map<String, Object> datasetJson = this.getDatasetIdentifier(dmpDepositModel.getPreviousDOI());
Identifier id = new Identifier(); Identifier id = new Identifier();
id.setId(((Integer) datasetJson.get("id")).longValue()); id.setId(((Integer) datasetJson.get("id")).longValue());
JsonNode jsonNode = this.objectMapper.readTree(new JSONObject(datasetJson).toString()); JsonNode jsonNode = objectMapper.convertValue(datasetJson, JsonNode.class);
List<JsonNode> files = jsonNode.findValues("dataFile"); JsonNode latestVersion = jsonNode.get("latestVersion");
for(JsonNode file: files){ JsonNode files = latestVersion.get("files");
int fileId = file.get("id").asInt(); if(files.isArray()){
for (JsonNode file : files) {
int fileId = file.get("dataFile").get("id").asInt();
this.deleteFile(fileId); this.deleteFile(fileId);
} }
}
this.uploadFiles(dmpDepositModel, dmpDepositModel.getPreviousDOI()); this.uploadFiles(dmpDepositModel, dmpDepositModel.getPreviousDOI());