This commit is contained in:
Nikolaos Laskaris 2017-11-03 19:55:04 +02:00
parent 65e8016333
commit d7a27e02d6
3 changed files with 24 additions and 91 deletions

View File

@ -104,11 +104,11 @@ public class DMP implements Serializable {
@Column(name = "\"Status\"", nullable = false) @Column(name = "\"Status\"", nullable = false)
private Short status; private Short status;
@Column(name = "\"Created\"", nullable = false) @Column(name = "\"Created\"")
private Date created = null; private Date created = null;
@Column(name = "\"Modified\"", nullable = false) @Column(name = "\"Modified\"")
private Date modified = null; private Date modified = new Date();
public Short getStatus() { public Short getStatus() {

View File

@ -2,6 +2,7 @@ package rest.entities;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -149,7 +150,9 @@ public class DMPs {
public @ResponseBody ResponseEntity<Object> updateDMP(@RequestBody DMP dmp) { public @ResponseBody ResponseEntity<Object> updateDMP(@RequestBody DMP dmp) {
DMP previousDmp = dMPDao.read(dmp.getId()); DMP previousDmp = dMPDao.read(dmp.getId());
addForeignElems(previousDmp, dmp); addNullAndForeignElems(previousDmp, dmp);
try { try {
DMP updatedDMP = dMPDao.update(dmp); DMP updatedDMP = dMPDao.update(dmp);
@ -162,92 +165,6 @@ public class DMPs {
} }
/*
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/set/full" }, consumes = "application/json", produces="application/json")
public @ResponseBody ResponseEntity<Object> setFullDMP(@RequestBody DMP dmp) {
//This function is a little bit tricky to implement (due to the irregular ORM mappings of the hibernate).
// Please make changes only if you are sure about what you're altering.
Dataset dataset = SerializationUtils.clone(dmp.getDataset());
dmp.setDataset(null);
int failsDMP = 0;
String reasonDmp = "";
DMP storedDMP = null;
//try first to create DMP
try {
storedDMP = dMPDao.create(dmp);
}
catch(Exception e) {
e.printStackTrace();
failsDMP++;
reasonDmp += e.getMessage();
//try updating DMP
try {
storedDMP = dMPDao.update(dmp);
}
catch(Exception ex) {
reasonDmp += (System.lineSeparator()+e.getMessage());
failsDMP++;
ex.printStackTrace();
}
}
if(failsDMP==2)
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create or update DMP! Reason: " + reasonDmp);
dataset.setDmp(storedDMP); //very important!
int failsDataset = 0;
String reasonDataset = "";
Dataset storedDataset = null;
if(dataset != null) {
//try first to create DMP
try {
storedDataset = datasetDao.create(dataset);
}
catch(Exception e) {
e.printStackTrace();
failsDataset++;
reasonDataset += e.getMessage();
//try updating DMP
try {
storedDataset = datasetDao.update(dataset);
}
catch(Exception ex) {
reasonDataset += (System.lineSeparator()+e.getMessage());
failsDataset++;
ex.printStackTrace();
}
}
}
String respBody;
try {
respBody = objectMapper.writeValueAsString(storedDMP.getId());
}
catch(JsonProcessingException ex) {
respBody = "{\"id\":\""+storedDMP.getId()+"\"}";
}
if(failsDataset != 2) {
if(failsDMP==0)
return ResponseEntity.status(HttpStatus.CREATED).body(respBody);
else if(failsDMP==1)
return ResponseEntity.status(HttpStatus.CREATED).body("Updated DMP with id: " + storedDMP.getId());
else
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create DMP! Reason:"+ reasonDmp);
}
else {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Could not create DMP! Failed to create or update its Dataset. Reason: "+reasonDataset);
}
}
*/
@ -352,11 +269,16 @@ public class DMPs {
users.add(userInfo); users.add(userInfo);
dmp.setUsers(users); dmp.setUsers(users);
dmp.setCreated(new Date());
dmp.setModified(new Date());
dmp.setStatus(new Short("0"));
DMP newdmp = dMPDao.create(dmp); DMP newdmp = dMPDao.create(dmp);
return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(newdmp)); return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(newdmp));
} }
catch(Exception ex) { catch(Exception ex) {
ex.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
} }
@ -404,7 +326,14 @@ public class DMPs {
private static void addForeignElems(DMP existing, DMP newone) { private static void addNullAndForeignElems(DMP existing, DMP newone) {
newone.setModified(new Date());
if(newone.getStatus()==null)
newone.setStatus(existing.getStatus());
if(newone.getCreated()==null)
newone.setCreated(existing.getCreated());
newone.setDataset(existing.getDataset()); newone.setDataset(existing.getDataset());
newone.setOrganisations(existing.getOrganisations()); newone.setOrganisations(existing.getOrganisations());
newone.setResearchers(existing.getResearchers()); newone.setResearchers(existing.getResearchers());

View File

@ -2,6 +2,7 @@ package rest.entities;
import java.io.IOException; import java.io.IOException;
import java.io.PrintStream; import java.io.PrintStream;
import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -124,6 +125,9 @@ public class Datasets {
public @ResponseBody ResponseEntity<Object> createDataset(@RequestBody Dataset dataset) { public @ResponseBody ResponseEntity<Object> createDataset(@RequestBody Dataset dataset) {
dataset.setId(null); dataset.setId(null);
dataset.setCreated(new Date());
dataset.setModified(new Date());
dataset.setStatus(new Short("0"));
try { try {
dataset = datasetDao.create(dataset); dataset = datasetDao.create(dataset);
return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(dataset)); return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(dataset));