diff --git a/dmp-backend/src/main/java/helpers/Transformers.java b/dmp-backend/src/main/java/helpers/Transformers.java index 679af3f5a..c6bf19784 100644 --- a/dmp-backend/src/main/java/helpers/Transformers.java +++ b/dmp-backend/src/main/java/helpers/Transformers.java @@ -20,7 +20,7 @@ import entities.Service; public class Transformers { - + /* public static DMP createDMPfromMap(MultiValueMap formData) { DatasetProfileRuleset dpr = new DatasetProfileRuleset(); @@ -89,7 +89,7 @@ public class Transformers { dmp.setLabel(formData.getFirst("DMP.label")); try { dmp.setPrevious(UUID.fromString(formData.getFirst("DMP.previous"))); - }catch(Exception ex) {/*do nothing*/} + }catch(Exception ex) {} dmp.setProfile(profile); dmp.setProfileData(formData.getFirst("DMP.profileData")); dmp.setProject(project); @@ -102,6 +102,7 @@ public class Transformers { return dmp; } + */ } diff --git a/dmp-backend/src/main/java/rest/entities/DMPs.java b/dmp-backend/src/main/java/rest/entities/DMPs.java index ebfe19a82..dd6195fbd 100644 --- a/dmp-backend/src/main/java/rest/entities/DMPs.java +++ b/dmp-backend/src/main/java/rest/entities/DMPs.java @@ -92,7 +92,7 @@ public class DMPs { } } - @RequestMapping(method = RequestMethod.GET, value = { "/dmps/{id}" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/dmps/{id}" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getDMP(@PathVariable("id") String id, @RequestParam(value="eager", defaultValue="false") boolean eager){ try { DMP dmp = dMPDao.read(UUID.fromString(id)); @@ -100,6 +100,7 @@ public class DMPs { dmp.getOrganisations().size(); //used only for lazy load trigger... dmp.getResearchers().size(); //used only for lazy load trigger... dmp.getUsers().size(); //used only for lazy load trigger... + dmp.getDataset().size(); //used only for lazy load trigger... } return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(dmp)); } @@ -109,6 +110,26 @@ public class DMPs { } } + + @RequestMapping(method = RequestMethod.GET, value = { "/dmp/history/{id}" }, produces="application/json;charset=UTF-8") + public @ResponseBody ResponseEntity getDMPHistory(@PathVariable("id") String id){ + try { + List history = new ArrayList(); + DMP dmp; + dmp = dMPDao.read(UUID.fromString(id)); + while(dmp.getPrevious()!=null) { + dmp = dMPDao.read(dmp.getPrevious()); //replace with previous + history.add(dmp); + } + return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(history)); + } + catch(Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Erroneous input: "+ex.getMessage()); + } + } + + @RequestMapping(method = RequestMethod.GET, value = { "/dmp/listDMPLabelID" }, produces="text/plain") public @ResponseBody ResponseEntity listDmpLabelID(){ @@ -126,7 +147,7 @@ public class DMPs { /** * This should be called on extreme cases. It's computationally intensive */ - @RequestMapping(method = RequestMethod.GET, value = { "/dmp/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/dmp/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllDMPs(){ try { @@ -141,7 +162,7 @@ public class DMPs { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/dmp/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dmp/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity createDMP(@RequestBody DMP dmp) { try { DMP createdDmp = dMPDao.update(dmp); @@ -154,7 +175,7 @@ public class DMPs { } @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/dmp/update" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dmp/update" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity updateDMP(@RequestBody DMP dmp) { DMP previousDmp = dMPDao.read(dmp.getId()); @@ -175,7 +196,7 @@ public class DMPs { - @RequestMapping(method = RequestMethod.POST, value = { "/dmp/getdatasets" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dmp/getdatasets" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getDatasetsOfDMP(@RequestBody DMP dmp) { try { List datasets = datasetDao.getDatasetsOfDmp(dmp.getId()); diff --git a/dmp-backend/src/main/java/rest/entities/DataRepositories.java b/dmp-backend/src/main/java/rest/entities/DataRepositories.java index aeb790071..0be2a8772 100644 --- a/dmp-backend/src/main/java/rest/entities/DataRepositories.java +++ b/dmp-backend/src/main/java/rest/entities/DataRepositories.java @@ -79,7 +79,7 @@ public class DataRepositories { - @RequestMapping(method = RequestMethod.GET, value = { "/external/datarepos" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/datarepos" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalDataRepositories(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getRepositories(query); @@ -123,7 +123,7 @@ public class DataRepositories { - @RequestMapping(method = RequestMethod.GET, value = { "/datarepo/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/datarepo/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllDataRepositories(){ try { @@ -141,7 +141,7 @@ public class DataRepositories { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/datarepo/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/datarepo/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setOrganisation(@RequestBody DataRepository dataRepository) { DataRepository createdDataRepository = dataRepositoryDao.update(dataRepository); try { diff --git a/dmp-backend/src/main/java/rest/entities/DatasetProfiles.java b/dmp-backend/src/main/java/rest/entities/DatasetProfiles.java index 306979fc4..a510c1ebe 100644 --- a/dmp-backend/src/main/java/rest/entities/DatasetProfiles.java +++ b/dmp-backend/src/main/java/rest/entities/DatasetProfiles.java @@ -111,7 +111,7 @@ public class DatasetProfiles { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity createDatasetProfile(@RequestBody DatasetProfile datasetProfile) { DatasetProfileRuleset datasetprofileruleset = datasetProfile.getRuleset(); @@ -143,7 +143,7 @@ public class DatasetProfiles { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/update" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/update" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity updateDatasetProfile(@RequestBody DatasetProfile datasetProfile) { DatasetProfileRuleset datasetprofileruleset = datasetProfile.getRuleset(); @@ -172,7 +172,7 @@ public class DatasetProfiles { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/delete" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/delete" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity deleteDatasetProfile(@RequestBody DatasetProfile datasetProfile) { DatasetProfileRuleset datasetprofileruleset = datasetProfile.getRuleset(); diff --git a/dmp-backend/src/main/java/rest/entities/Datasets.java b/dmp-backend/src/main/java/rest/entities/Datasets.java index b50fa2cf9..f81b2092b 100644 --- a/dmp-backend/src/main/java/rest/entities/Datasets.java +++ b/dmp-backend/src/main/java/rest/entities/Datasets.java @@ -125,7 +125,7 @@ public class Datasets { } - @RequestMapping(method = RequestMethod.POST, value = { "/dataset/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dataset/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity createDataset(@RequestBody Dataset dataset) { @@ -164,7 +164,7 @@ public class Datasets { } - @RequestMapping(method = RequestMethod.POST, value = { "/dataset/update" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dataset/update" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity updateDataset(@RequestBody String datasetJson) { Dataset dataset; diff --git a/dmp-backend/src/main/java/rest/entities/DmpProfiles.java b/dmp-backend/src/main/java/rest/entities/DmpProfiles.java index d9df89a27..18f845fe6 100644 --- a/dmp-backend/src/main/java/rest/entities/DmpProfiles.java +++ b/dmp-backend/src/main/java/rest/entities/DmpProfiles.java @@ -112,7 +112,7 @@ public class DmpProfiles { } - @RequestMapping(method = RequestMethod.GET, value = { "/dmpprofile/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/dmpprofile/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllDmpProfiles(){ try { List allDmpProfiles = dMPProfileDao.getAll(); @@ -125,7 +125,7 @@ public class DmpProfiles { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/dmpprofile/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/dmpprofile/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setDmpProfile(@RequestBody DMPProfile dmpprofile) { try { DMPProfile createdDMPProfile = dMPProfileDao.update(dmpprofile); diff --git a/dmp-backend/src/main/java/rest/entities/Organisations.java b/dmp-backend/src/main/java/rest/entities/Organisations.java index 0aaf847a8..b2e48c65b 100644 --- a/dmp-backend/src/main/java/rest/entities/Organisations.java +++ b/dmp-backend/src/main/java/rest/entities/Organisations.java @@ -77,7 +77,7 @@ public class Organisations { @Autowired private RemoteFetcher remoteFetcher; - @RequestMapping(method = RequestMethod.GET, value = { "/external/organisations" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/organisations" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalOrganisations(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getOrganisations(query); @@ -118,7 +118,7 @@ public class Organisations { } - @RequestMapping(method = RequestMethod.GET, value = { "/organisation/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/organisation/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllOrganisations(){ try { List allOrganisations = organisationDao.getAll(); @@ -131,7 +131,7 @@ public class Organisations { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/organisation/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/organisation/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setOrganisation(@RequestBody Organisation organisation) { try { Organisation createdOrganisation = organisationDao.update(organisation); diff --git a/dmp-backend/src/main/java/rest/entities/Projects.java b/dmp-backend/src/main/java/rest/entities/Projects.java index e2966a77d..636041c01 100644 --- a/dmp-backend/src/main/java/rest/entities/Projects.java +++ b/dmp-backend/src/main/java/rest/entities/Projects.java @@ -88,7 +88,7 @@ public class Projects { @Autowired private RemoteFetcher remoteFetcher; - @RequestMapping(method = RequestMethod.GET, value = { "/external/projects" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/projects" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalProjects(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getProjects(query); @@ -105,7 +105,7 @@ public class Projects { // MANAGE PROJECT(S) - @RequestMapping(method = RequestMethod.GET, value = { "/projects" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/projects" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listProjects(){ try { List allIDs = projectDao.listAllIDs(); @@ -116,7 +116,7 @@ public class Projects { } } - @RequestMapping(method = RequestMethod.GET, value = { "/projects/{id}" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/projects/{id}" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getProject(@PathVariable("id") String id, @RequestParam(value="eager", defaultValue="false") boolean eager) { try { Project project = projectDao.read(UUID.fromString(id)); @@ -132,8 +132,22 @@ public class Projects { } } + @RequestMapping(method = RequestMethod.GET, value = { "/project/dmps" }, produces="application/json;charset=UTF-8") + public @ResponseBody ResponseEntity getDMPsOfProject(@RequestParam("id") String id) { + try { + Project project = projectDao.read(UUID.fromString(id)); + if(project==null) + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Could not find project with id: "+id); + + return ResponseEntity.status(HttpStatus.OK).body(SerializerProvider.toJson(project.getDmps())); + } + catch(Exception ex) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Erroneous input: "+ex.getMessage()); + } + } - @RequestMapping(method = RequestMethod.GET, value = { "/project/listAllLabelIDs" }, produces="application/json") + + @RequestMapping(method = RequestMethod.GET, value = { "/project/listAllLabelIDs" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listLabelIds(){ try { List allIDs = projectDao.listAllIDsLabels(); @@ -145,7 +159,7 @@ public class Projects { } - @RequestMapping(method = RequestMethod.GET, value = { "/project/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/project/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllProjects(){ try { List allProjects = projectDao.getAll(); @@ -159,7 +173,7 @@ public class Projects { @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;charset=UTF-8") public @ResponseBody ResponseEntity createProject(@RequestBody Project project) { Project createdProject = projectDao.update(project); return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(createdProject)); @@ -167,14 +181,14 @@ public class Projects { - @RequestMapping(method = RequestMethod.POST, value = { "/project/update" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/project/update" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity updateProject(@RequestBody Project project) { Project updatedProject = projectDao.update(project); return ResponseEntity.status(HttpStatus.CREATED).body(SerializerProvider.toJson(updatedProject)); } - @RequestMapping(method = RequestMethod.POST, value = { "/project/delete" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/project/delete" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity delete(@RequestBody Project project) { Project p = new Project(); @@ -191,7 +205,7 @@ public class Projects { - @RequestMapping(method = RequestMethod.POST, value = { "/project/softdelete" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/project/softdelete" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity softDelete(@RequestBody Project project) { project.setStatus(new Short("-1")); @@ -208,7 +222,7 @@ public class Projects { @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;charset=UTF-8") public @ResponseBody ResponseEntity getProjectDmps(@RequestBody Project project) { try { Set dmps = projectDao.read(project.getId()).getDmps(); diff --git a/dmp-backend/src/main/java/rest/entities/Registries.java b/dmp-backend/src/main/java/rest/entities/Registries.java index f9033fe97..8895005cd 100644 --- a/dmp-backend/src/main/java/rest/entities/Registries.java +++ b/dmp-backend/src/main/java/rest/entities/Registries.java @@ -76,7 +76,7 @@ public class Registries { @Autowired private RemoteFetcher remoteFetcher; - @RequestMapping(method = RequestMethod.GET, value = { "/external/registries" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/registries" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalRegistries(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getRegistries(query); @@ -130,7 +130,7 @@ public class Registries { } - @RequestMapping(method = RequestMethod.GET, value = { "/registry/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/registry/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllRegistries(){ try { List allRegistries = registryDao.getAll(); @@ -145,7 +145,7 @@ public class Registries { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/registry/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/registry/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setRegistry(@RequestBody Registry registry) { Registry createdRegistry = registryDao.update(registry); try { diff --git a/dmp-backend/src/main/java/rest/entities/Researchers.java b/dmp-backend/src/main/java/rest/entities/Researchers.java index 5da78e842..9355e8c49 100644 --- a/dmp-backend/src/main/java/rest/entities/Researchers.java +++ b/dmp-backend/src/main/java/rest/entities/Researchers.java @@ -76,7 +76,7 @@ public class Researchers { @Autowired private RemoteFetcher remoteFetcher; - @RequestMapping(method = RequestMethod.GET, value = { "/external/researchers" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/researchers" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalResearchers(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getResearchers(query); @@ -116,7 +116,7 @@ public class Researchers { } } - @RequestMapping(method = RequestMethod.GET, value = { "/researcher/getByEmail" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/researcher/getByEmail" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getResearcherByEmail(@RequestParam("email") String email){ try { Researcher researcher = researcherDao.getResearcherByEmail(email); @@ -129,7 +129,7 @@ public class Researchers { } - @RequestMapping(method = RequestMethod.GET, value = { "/researcher/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/researcher/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllResearchers(){ try { List allResearchers = researcherDao.getAll(); @@ -144,7 +144,7 @@ public class Researchers { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/researcher/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/researcher/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setResearcher(@RequestBody Researcher researcher) { Researcher createdResearcher = researcherDao.update(researcher); try { diff --git a/dmp-backend/src/main/java/rest/entities/Services.java b/dmp-backend/src/main/java/rest/entities/Services.java index f9538e1ea..7de1362cb 100644 --- a/dmp-backend/src/main/java/rest/entities/Services.java +++ b/dmp-backend/src/main/java/rest/entities/Services.java @@ -77,7 +77,7 @@ public class Services { @Autowired private RemoteFetcher remoteFetcher; - @RequestMapping(method = RequestMethod.GET, value = { "/external/services" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/external/services" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity listExternalServices(@RequestParam(value="query", required=false) String query ){ try { List> remoteRepos = remoteFetcher.getServices(query); @@ -119,7 +119,7 @@ public class Services { - @RequestMapping(method = RequestMethod.GET, value = { "/service/getAll" }, produces="application/json") + @RequestMapping(method = RequestMethod.GET, value = { "/service/getAll" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity getAllServices(){ try { List allServices = serviceDao.getAll(); @@ -134,7 +134,7 @@ public class Services { @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/service/create" }, consumes = "application/json", produces="application/json") + @RequestMapping(method = RequestMethod.POST, value = { "/service/create" }, consumes = "application/json", produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity setService(@RequestBody Service service) { Service createdService = serviceDao.update(service); diff --git a/dmp-backend/src/main/java/rest/entities/Users.java b/dmp-backend/src/main/java/rest/entities/Users.java index 1424d5086..8f51edfd1 100644 --- a/dmp-backend/src/main/java/rest/entities/Users.java +++ b/dmp-backend/src/main/java/rest/entities/Users.java @@ -74,6 +74,35 @@ public class Users { @Autowired private UserInfoDao userInfoDao; + + @RequestMapping(method = RequestMethod.GET, value = { "/users/{id}" }, produces="application/json;charset=UTF-8") + public @ResponseBody ResponseEntity getUserByID(@PathVariable("id") String id){ + + 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.getUserInfo(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"); + + //now get the user the caller asked for... + UserInfo userAsked4 = userInfoDao.getUserInfo(id); + + try { + return new ResponseEntity(SerializerProvider.toJson(userAsked4), HttpStatus.OK); + } + catch(Exception ex) { + ex.printStackTrace(); + return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + + @RequestMapping(method = RequestMethod.GET, value = { "/user/whoami" }, produces="application/json;charset=UTF-8") public @ResponseBody ResponseEntity whoami(){