Merge branch 'master' of gitlab.eudat.eu:dmp/OpenAIRE-EUDAT-DMP-service-pilot

This commit is contained in:
annampak 2017-11-07 14:26:34 +02:00
commit e9f9cac007
20 changed files with 288 additions and 60 deletions

View File

@ -104,6 +104,7 @@ public class DMP implements Serializable {
@Column(name = "\"Status\"", nullable = false) @Column(name = "\"Status\"", nullable = false)
private Short status; private Short status;
@Column(name = "\"Created\"") @Column(name = "\"Created\"")
private Date created = null; private Date created = null;
@ -111,6 +112,21 @@ public class DMP implements Serializable {
private Date modified = new Date(); private Date modified = new Date();
@Column(name = "\"Description\"")
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Short getStatus() { public Short getStatus() {
return status; return status;
} }

View File

@ -57,11 +57,12 @@ public class DMPProfile 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

@ -72,11 +72,11 @@ public class DataRepository 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

@ -99,11 +99,25 @@ public class Dataset 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();
@Column(name = "\"Description\"")
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Short getStatus() { public Short getStatus() {

View File

@ -67,11 +67,25 @@ public class DatasetProfile 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();
@Column(name = "\"Description\"")
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Short getStatus() { public Short getStatus() {

View File

@ -74,11 +74,12 @@ public class Organisation 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

@ -80,11 +80,25 @@ public class Project 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();
@Column(name = "\"Description\"")
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Short getStatus() { public Short getStatus() {

View File

@ -73,11 +73,12 @@ public class Registry 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

@ -73,11 +73,12 @@ public class Researcher 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

@ -73,11 +73,12 @@ public class Service 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

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
@ -84,6 +85,11 @@ public class UserInfo implements Serializable{
private Set<DMP> dmps; private Set<DMP> dmps;
public Set<DMP> getDmpsNonDeleted(){
return getDmps().parallelStream().filter(dmp -> dmp.getStatus()>=0).collect(Collectors.toSet());
}
public Set<DMP> getDmps() { public Set<DMP> getDmps() {
return dmps; return dmps;
} }

View File

@ -203,7 +203,7 @@ public class DMPs {
d.setStatus(new Short("-1")); d.setStatus(new Short("-1"));
try { try {
int code = updateDMP(dmp).getStatusCodeValue(); int code = updateDMP(d).getStatusCodeValue();
if(code>199 && code<300) if(code>199 && code<300)
return ResponseEntity.status(HttpStatus.CREATED).body("DELETED!"); return ResponseEntity.status(HttpStatus.CREATED).body("DELETED!");
else else
@ -238,7 +238,8 @@ public class DMPs {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here"); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
try { try {
return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(userInfo.getDmps())); Set<DMP> nonDeleted = userInfo.getDmpsNonDeleted();
return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(nonDeleted));
} }
catch(Exception ex) { catch(Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
@ -285,6 +286,51 @@ public class DMPs {
} }
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/cloneforuser" }, produces="text/plain", consumes = "application/json")
public @ResponseBody ResponseEntity<Object> cloneDmpOfUser(@RequestBody DMP dmp){
String userID = null;
try {
userID = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();
} catch(NullPointerException ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("You have not logged in. You shouldn't be here");
}
UserInfo userInfo = userInfoDao.read(UUID.fromString(userID));
if(userInfo==null) //this should normally never happer
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("There's no such a user on the system. You shouldn't be here");
DMP clone = dMPDao.read(dmp.getId());
try {
Set<UserInfo> users = new HashSet<UserInfo>();
users.add(userInfo);
clone.setUsers(users);
clone.setCreated(new Date());
clone.setModified(new Date());
clone.setStatus(new Short("0"));
clone.setVersion(clone.getVersion()+1);
clone.setLabel(clone.getLabel()+"_clone");
clone.setPrevious(clone.getId());
clone.setId(null);
clone = dMPDao.create(clone);
return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(clone));
}
catch(Exception ex) {
ex.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage());
}
}
@RequestMapping(method = RequestMethod.POST, value = { "/dmp/adduser" }, produces="text/plain") @RequestMapping(method = RequestMethod.POST, value = { "/dmp/adduser" }, produces="text/plain")
public @ResponseBody ResponseEntity<Object> addUserToDmp(@RequestBody DMP dmp){ public @ResponseBody ResponseEntity<Object> addUserToDmp(@RequestBody DMP dmp){

View File

@ -1,5 +1,6 @@
package rest.entities; package rest.entities;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@ -137,7 +138,15 @@ public class Projects {
@Transactional @Transactional
@RequestMapping(method = RequestMethod.POST, value = { "/project/create" }, consumes = "application/json", produces="application/json") @RequestMapping(method = RequestMethod.POST, value = { "/project/create" }, consumes = "application/json", produces="application/json")
public @ResponseBody ResponseEntity<Object> setProject(@RequestBody Project project) { public @ResponseBody ResponseEntity<Object> createProject(@RequestBody Project project) {
Project createdProject = projectDao.update(project);
return ResponseEntity.status(HttpStatus.CREATED).body(createdProject);
}
@RequestMapping(method = RequestMethod.POST, value = { "/project/update" }, consumes = "application/json", produces="application/json")
public @ResponseBody ResponseEntity<Object> updateProject(@RequestBody Project project) {
Project createdProject = projectDao.update(project); Project createdProject = projectDao.update(project);
return ResponseEntity.status(HttpStatus.CREATED).body(createdProject); return ResponseEntity.status(HttpStatus.CREATED).body(createdProject);
} }
@ -159,6 +168,23 @@ public class Projects {
} }
@RequestMapping(method = RequestMethod.POST, value = { "/project/softdelete" }, consumes = "application/json", produces="application/json")
public @ResponseBody ResponseEntity<Object> softDelete(@RequestBody Project project) {
project.setStatus(new Short("-1"));
try {
projectDao.update(project);
return ResponseEntity.status(HttpStatus.CREATED).body("{\"msg\":\"Deleted project!\"}");
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("{\"msg\":\"Could not delete Project!\"}");
}
}
@Transactional @Transactional
@RequestMapping(method = RequestMethod.POST, value = { "/project/getdmps" }, consumes = "application/json", produces="application/json") @RequestMapping(method = RequestMethod.POST, value = { "/project/getdmps" }, consumes = "application/json", produces="application/json")
public @ResponseBody ResponseEntity<Object> getProjectDmps(@RequestBody Project project) { public @ResponseBody ResponseEntity<Object> getProjectDmps(@RequestBody Project project) {
@ -230,13 +256,18 @@ public class Projects {
try { try {
project.setId(null); project.setId(null);
project.setStatus(new Short("0"));
project.setCreated(new Date());
project.setModified(new Date());
Project newproj = projectDao.create(project); Project newproj = projectDao.create(project);
DMP newdmp = new DMP(); DMP newdmp = new DMP();
newdmp.setId(null); newdmp.setId(null);
newdmp.setLabel("Auto-Generated"); newdmp.setLabel("Auto-Generated");
newdmp.setCreated(new Date());
newdmp.setVersion(1); newdmp.setVersion(1);
newdmp.setStatus(new Short("0"));
newdmp.setProject(newproj); newdmp.setProject(newproj);
Set<UserInfo> users = new HashSet<UserInfo>(); Set<UserInfo> users = new HashSet<UserInfo>();
@ -248,6 +279,7 @@ public class Projects {
return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(newproj)); return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(newproj));
} }
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());
} }

View File

@ -181,8 +181,6 @@ public class TestRest {
System.out.println(SerializerProvider.toJson(userProjects)); System.out.println(SerializerProvider.toJson(userProjects));
assertEquals("aaa", "aaa"); assertEquals("aaa", "aaa");
} }
@ -204,9 +202,18 @@ public class TestRest {
@Test @Test
public void testDataset() { public void testDmpClone() {
System.out.println(datasetsService.getAllDatasets().getBody()); System.out.println(dmpsService.getDmpsOfUser().getBody());
DMP dmp = new DMP();
dmp.setId(UUID.fromString("8faad611-7083-497c-ad96-9459e47ee175"));
String clonedJSON = dmpsService.cloneDmpOfUser(dmp).toString();
System.out.println(clonedJSON);
// System.out.println(datasetsService.getAllDatasets().getBody());
// System.out.println(dmpsService.getDatasetsOfDMP(dmp).getBody()); // System.out.println(dmpsService.getDatasetsOfDMP(dmp).getBody());
@ -216,4 +223,48 @@ public class TestRest {
} }
//@Test
public void testProject() {
String projectJson = "{\"id\":\"d558e52c-a61b-4e16-a401-b27c579cf8e3\",\"dmps\":null,\"label\":\"Sample project\",\"abbreviation\":null,\"reference\":\"agasdfasdf\",\"uri\":\"hadfhadfgazfrg\",\"definition\":\"<info>sdfgsdg</info>\",\"startdate\":\"2017-11-01\",\"enddate\":\"2017-11-30\",\"status\":0,\"created\":1509638367900,\"modified\":1509638367900}";
try {
Project project = SerializerProvider.fromJson(projectJson, Project.class);
System.out.println(SerializerProvider.toJson(project));
} catch (Exception e) {
e.printStackTrace();
}
/*
// System.out.println(dmpsService.getAllDMPs().getBody().toString());
String dmpJSON = dmpsService.getDMP("d0d01f5e-9aed-4733-a0cf-aabe44cd30c9").getBody().toString();
System.out.println(dmpJSON);
try {
DMP dmp = SerializerProvider.fromJson(dmpJSON, DMP.class);
ResponseEntity<Object> resp = dmpsService.softDelete(dmp);
resp.getStatusCode();
}
catch(Exception ex) {
}
//dmpsService.softDelete(dmp)
//System.out.println(datasetsService.getAllDatasets().getBody());
// System.out.println(dmpsService.getDatasetsOfDMP(dmp).getBody());
*/
assertEquals("aaa", "aaa");
}
} }

View File

@ -12,6 +12,10 @@ import { StatusToString } from '../pipes/various/status-to-string';
declare var $: any; declare var $: any;
import '../../assets/custom.js';
declare function simple_notifier(type: string, title: string, message:string): any;
@Component({ @Component({
selector: 'datasets-table', selector: 'datasets-table',
templateUrl: 'dataset.html', templateUrl: 'dataset.html',
@ -87,11 +91,7 @@ export class DatasetsComponent implements OnInit {
//this.projects = this.serverService.getDummyProjects(); //this.projects = this.serverService.getDummyProjects();
this.datasets = []; this.datasets = [];
console.log(this.dmpIdforDatasets); console.log(this.dmpIdforDatasets);
this.serverService.getDatasetForDmp({ "id": this.dmpIdforDatasets }).subscribe( this.getDatasets();
response => {
this.tableData = response;
}
);
this.serverService.getAllDatsetsProfile().subscribe( this.serverService.getAllDatsetsProfile().subscribe(
response => { response => {
@ -100,7 +100,12 @@ export class DatasetsComponent implements OnInit {
params.key = datasetprofile.id; params.key = datasetprofile.id;
params.value = datasetprofile.label; params.value = datasetprofile.label;
this.datasetProfileDropDown.options.push(params); this.datasetProfileDropDown.options.push(params);
}); },
error => {
simple_notifier("danger",null,"Could not load User's Dataset Profiles");
}
);
} }
) )
@ -124,10 +129,13 @@ export class DatasetsComponent implements OnInit {
this.dataset.profile = { "id": this.dataset.profile } this.dataset.profile = { "id": this.dataset.profile }
this.serverService.createDatasetForDmp(this.dataset).subscribe( this.serverService.createDatasetForDmp(this.dataset).subscribe(
response => { response => {
console.log(response); simple_notifier("success",null,"Created dataset");
this.getDatasets(); this.getDatasets();
if (this.saveAndDescribe == true) if (this.saveAndDescribe == true)
this.describeDataset(response); this.describeDataset(response);
},
error=>{
simple_notifier("danger",null,"Could not create Dataset");
} }
) )
$("#newDatasetModal").modal("hide"); $("#newDatasetModal").modal("hide");
@ -138,10 +146,13 @@ export class DatasetsComponent implements OnInit {
this.dataset.profile = { "id": this.dataset.profile } this.dataset.profile = { "id": this.dataset.profile }
this.serverService.updateDatsetsProfile(this.dataset).subscribe( this.serverService.updateDatsetsProfile(this.dataset).subscribe(
response => { response => {
console.log(response); simple_notifier("success",null,"Dataset edited");
this.getDatasets(); this.getDatasets();
if (this.saveAndDescribe == true) if (this.saveAndDescribe == true)
this.describeDataset(response); this.describeDataset(response);
},
error => {
simple_notifier("danger",null,"Could not edit dataset");
} }
) )
$("#newDatasetModal").modal("hide"); $("#newDatasetModal").modal("hide");
@ -149,10 +160,15 @@ export class DatasetsComponent implements OnInit {
} }
getDatasets(){ getDatasets(muted?: boolean){
this.serverService.getDatasetForDmp({ "id": this.dmpIdforDatasets }).subscribe( this.serverService.getDatasetForDmp({ "id": this.dmpIdforDatasets }).subscribe(
response => { response => {
this.tableData = response; this.tableData = response;
if(muted && muted!=true)
simple_notifier("success",null,"Updated datasets table");
},
error => {
simple_notifier("danger",null,"Could not update datasets table");
} }
); );
} }
@ -162,6 +178,9 @@ export class DatasetsComponent implements OnInit {
this.serverService.getDatasetForDmp({ "id": dmpid }).subscribe( this.serverService.getDatasetForDmp({ "id": dmpid }).subscribe(
response => { response => {
this.tableData = response; this.tableData = response;
},
error => {
console.log("could not retrieve dataset for dpm: "+dmpid);
} }
); );
} }
@ -201,13 +220,13 @@ export class DatasetsComponent implements OnInit {
deleteRow(dataset, $event){ deleteRow(dataset, $event){
this.serverService.deleteDataset(dataset).subscribe( this.serverService.deleteDataset(dataset).subscribe(
response => { response => {
console.log("Deleted Successfully the dataset") simple_notifier("success",null,"Deleted dataset");
this.getDatasets();
}, },
err => { err => {
console.log("Could not delete the dataset") simple_notifier("danger",null,"Could not delete the dataset");
} }
); );
this.getDatasets();
} }

View File

@ -15,7 +15,7 @@
</select> </select>
</th> </th>
<th> <th>
<button class="btn btn-default" (click)="getDatasets()"> <button class="btn btn-default" (click)="getDatasets('false')">
<span class="glyphicon glyphicon-refresh"></span> <span class="glyphicon glyphicon-refresh"></span>
</button> </button>
</th> </th>

View File

@ -112,10 +112,12 @@ export class DmpComponent implements OnInit{
getDmps(){ getDmps(muted? : boolean){
this.serverService.getDmpOfUser().subscribe( this.serverService.getDmpOfUser().subscribe(
response => { response => {
this.tableData = response; this.tableData = response;
if(muted && muted!=true)
simple_notifier("success",null,"Refreshed DMPs");
}, },
(err: HttpErrorResponse) => { (err: HttpErrorResponse) => {
simple_notifier("danger",null,"Could not refresh DMPs"); simple_notifier("danger",null,"Could not refresh DMPs");

View File

@ -10,7 +10,7 @@
<input class="form-control" [(ngModel)]="filterQuery" placeholder='Search in Labels' /> <input class="form-control" [(ngModel)]="filterQuery" placeholder='Search in Labels' />
</th> </th>
<th colspan="1"> <th colspan="1">
<button class="btn btn-default " (click)="getDmps()"> <button class="btn btn-default " (click)="getDmps('false')">
<span class="glyphicon glyphicon-refresh"></span> <span class="glyphicon glyphicon-refresh"></span>
</button> </button>
</th> </th>

View File

@ -8,7 +8,7 @@
<input class="form-control" [(ngModel)]="filterQuery" placeholder='Filter' /> <input class="form-control" [(ngModel)]="filterQuery" placeholder='Filter' />
</th> </th>
<th> <th>
<button class="btn btn-default" (click)="getProjects()"> <button class="btn btn-default" (click)="getProjects('false')">
<span class="glyphicon glyphicon-refresh"></span> <span class="glyphicon glyphicon-refresh"></span>
</button> </button>
</th> </th>

View File

@ -22,6 +22,8 @@ import { ProjectTableFilterPipe } from '../pipes/project-table-filter.pipe';
declare var $ :any; declare var $ :any;
import '../../assets/custom.js';
declare function simple_notifier(type: string, title: string, message:string): any;
@Component({ @Component({
@ -118,14 +120,15 @@ getEmptyProject(){
} }
getProjects(){ getProjects(muted? : boolean){
this.serverService.getProjectsOfUser().subscribe( this.serverService.getProjectsOfUser().subscribe(
response => { response => {
this.tableData = response; this.tableData = response;
console.log(this.tableData) if(muted && muted!=true)
simple_notifier("success",null,"Updated projects table");
}, },
err => { err => {
simple_notifier("danger",null,"Could not retrieve projects");
} }
); );
} }
@ -142,13 +145,17 @@ getDMPs(){
params.key = dmp.id; params.key = dmp.id;
params.value = dmp.label; params.value = dmp.label;
this.datasetDropDown.options.push(params); this.datasetDropDown.options.push(params);
}); },
error => {
}
);
} }
) )
} }
showDatasets(){debugger; //dmpId, event showDatasets(){ //dmpId, event
//this.dataSetVisibe = true; //this.dataSetVisibe = true;
} }
@ -165,8 +172,10 @@ SaveProject(){
action.subscribe( action.subscribe(
response =>{ response =>{
this.getProjects(); this.getProjects();
console.log("response"); simple_notifier("success",null, (this.project.id == null) ? "Created" : "Updated" +" projects table");
console.log(response); },
error => {
simple_notifier("danger",null, "Could not "+ (this.project.id == null) ? "create" : "update" + " projects table");
} }
); );