diff --git a/pom.xml b/pom.xml index 18815c3..b69f646 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ 1.0.0 dnet-role-management - 0.0.1-SNAPSHOT + 1.0.1-SNAPSHOT war dnet-role-management DNET Role Management API. Integrated with AAI Registry Service @@ -97,7 +97,7 @@ maven-war-plugin - 2.4 + 2.6 false diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java index 610e3a2..2860d4c 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/CuratorController.java @@ -42,7 +42,8 @@ public class CuratorController { @RequestMapping(value = "/{type}/create", method = RequestMethod.POST) public ResponseEntity createRole(@PathVariable("type") String type, @RequestParam(value = "description", required = false) String description) { try { - if (registryService.getCouId(AuthoritiesUtils.curatorRole(type).toLowerCase()) == null) { + if (registryService.getCouId(AuthoritiesUtils.curatorRole(type)) == null) { + registryService.createRole(AuthoritiesUtils.curatorRole(type), description != null?description:""); return ResponseEntity.ok(new Response("Role has been created successfully")); } else { throw new ConflictException("This role already exists"); @@ -56,12 +57,14 @@ public class CuratorController { * Get the user info of the curators of a type(Community, etc.) */ @RequestMapping(value = "/{type}", method = RequestMethod.GET) - public ResponseEntity getAll(@PathVariable("type") String type) { - Integer couId = registryService.getCouId(AuthoritiesUtils.curatorRole(type).toLowerCase()); + public ResponseEntity getAll(@PathVariable("type") String type, + @RequestParam(value = "email", required = false, defaultValue = "true") boolean email, + @RequestParam(value = "name", required = false, defaultValue = "true") boolean name) { + Integer couId = registryService.getCouId(AuthoritiesUtils.curatorRole(type)); if (couId != null) { JsonArray users = registryService.getUserIdByCouId(couId, false); - JsonArray emails = registryService.getUserEmailByCouId(couId, false); - JsonArray names = registryService.getUserNamesByCouId(couId, false); + JsonArray emails = (email) ? registryService.getUserEmailByCouId(couId, false) : new JsonArray(); + JsonArray names = (name) ? registryService.getUserNamesByCouId(couId, false) : new JsonArray(); return ResponseEntity.ok(JsonUtils.mergeUserInfo(users, emails, names, gson)); } throw new ResourceNotFoundException("Role has not been found"); @@ -75,7 +78,7 @@ public class CuratorController { @RequestParam(value = "force", defaultValue = "false") boolean force) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); if (coPersonIds.size() > 0) { - Integer temp = registryService.getCouId(AuthoritiesUtils.curatorRole(type).toLowerCase()); + Integer temp = registryService.getCouId(AuthoritiesUtils.curatorRole(type)); if (temp != null || force) { Integer couId = (temp != null)?temp:registryService.createRole(AuthoritiesUtils.curatorRole(type), ""); coPersonIds.forEach(coPersonId -> { @@ -98,7 +101,7 @@ public class CuratorController { public ResponseEntity removeRole(@PathVariable("type") String type, @RequestParam(required = false) String email) { List coPersonIds = registryService.getCoPersonIdsByEmail(email); if (coPersonIds.size() > 0) { - Integer couId = registryService.getCouId(AuthoritiesUtils.curatorRole(type).toLowerCase()); + Integer couId = registryService.getCouId(AuthoritiesUtils.curatorRole(type)); if (couId != null) { coPersonIds.forEach(coPersonId -> { String identifier = registryService.getIdentifierByCoPersonId(coPersonId); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java index 7fb4ea2..390ceb0 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/MemberController.java @@ -42,7 +42,8 @@ public class MemberController { public ResponseEntity createGroup(@PathVariable("type") String type, @PathVariable("id") String id, @RequestParam(value = "description", required = false) String description) { try { - if (registryService.createRole(AuthoritiesUtils.memberRole(type, id), description != null ? description : "") != null) { + if (registryService.getCouId(AuthoritiesUtils.memberRole(type, id)) == null) { + registryService.createRole(AuthoritiesUtils.memberRole(type, id), description != null ? description : ""); return ResponseEntity.ok(new Response("Role has been created successfully")); } else { throw new ConflictException("This role already exists"); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java index 0dec944..08b0fab 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java @@ -29,7 +29,8 @@ public class SuperAdminController { @RequestMapping(value = "/create", method = RequestMethod.POST) public ResponseEntity createRole(@RequestParam("name") String name, @RequestParam(value = "description", required = false) String description) { try { - if (registryService.createRole(name, description != null ? description : "") != null) { + if (registryService.getCouId(name) == null) { + registryService.createRole(name, description != null ? description : ""); return ResponseEntity.ok(new Response("Role has been created successfully")); } else { throw new ConflictException("This role already exists"); diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java index e23a77c..41872cc 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java @@ -121,7 +121,7 @@ public class RegistryService { public Integer getCouId(String name) { JsonArray cous = getCous(name); for (JsonElement cou : cous) { - if (cou.getAsJsonObject().get("Name").getAsString().toLowerCase().equals(name.toLowerCase())) { + if (cou.getAsJsonObject().get("Name").getAsString().equalsIgnoreCase(name)) { return cou.getAsJsonObject().get("Id").getAsInt(); } }