Adds "make public DMP" service on backend.
This commit is contained in:
parent
9d77f7e0ab
commit
499149ea93
|
@ -237,5 +237,14 @@ public class DMPs extends BaseController {
|
|||
dmp.setTotalCount(query.getQuery().count());
|
||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<Map>>().status(ApiMessageCode.NO_MESSAGE).payload(dmp));
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, value = {"/makepublic/{id}"})
|
||||
public ResponseEntity<ResponseItem<DMP>> makePublic(@PathVariable String id, Principal principal) {
|
||||
try {
|
||||
this.dataManagementPlanManager.makePublic(UUID.fromString(id), principal);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DMP>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Data Datamanagement Plan made public"));
|
||||
} catch (Exception e) {
|
||||
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DMP>().status(ApiMessageCode.ERROR_MESSAGE).message(e.getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -897,4 +897,15 @@ public class DataManagementPlanManager {
|
|||
|
||||
return data;
|
||||
}
|
||||
|
||||
public void makePublic(UUID id, Principal principal) throws Exception {
|
||||
DMP dmp = this.apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(id);
|
||||
// Check if dmp is finalized and if user is owner.
|
||||
if (!dmp.getUsers().stream().filter(userDMP -> userDMP.getRole().equals(UserDMP.UserDMPRoles.OWNER.getValue())).findFirst().get().getUser().getId().equals(principal.getId()))
|
||||
throw new Exception("User does not have the privilege to do this action.");
|
||||
if (!dmp.getStatus().equals(DMP.DMPStatus.FINALISED.getValue()))
|
||||
throw new Exception("DMP is not finalized");
|
||||
dmp.setPublic(true);
|
||||
apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(dmp);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue