diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java index 7d5a39d..85e5247 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java @@ -26,10 +26,8 @@ public class CuratorService { public List getCurators(String pid) { List curators = new ArrayList<>(); - - for (Manager manager : managerService.getManagers(pid)) { - log.info(manager.getEmail()); - Curator curator = curatorDAO.findByEmail(manager.getEmail()); + for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) { + Curator curator = curatorDAO.findById(parseId(manager.getId())); if (curator != null) { curators.add(new CuratorResponse(curator)); } @@ -46,12 +44,16 @@ public class CuratorService { } public void deleteCurators(String pid) { - for (Manager manager : managerService.getManagers(pid)) { - Curator curator = curatorDAO.findByEmail(manager.getEmail()); + for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) { + Curator curator = curatorDAO.findById(parseId(manager.getId())); if (curator != null) { curatorDAO.delete(curator.getId()); } } } + private String parseId(String id) { + return id.substring(0 , id.indexOf("@")); + } + } \ No newline at end of file diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/ManagerService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/ManagerService.java index e9f075c..9a9b1e9 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/ManagerService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/ManagerService.java @@ -13,6 +13,11 @@ import org.springframework.web.client.RestTemplate; @Service public class ManagerService { + enum Type { + EMAIL, + ID + } + @Autowired private ManagersApiConfig config; @@ -20,7 +25,12 @@ public class ManagerService { private RestTemplate restTemplate; public Manager[] getManagers(String pid) { - ResponseEntity responseEntity = restTemplate.getForEntity(config.getEmail().replace("{community}", pid), Response.class); + return getManagers(pid, Type.EMAIL); + } + + public Manager[] getManagers(String pid, Type type) { + String url = (type == Type.EMAIL)?config.getEmail():config.getId(); + ResponseEntity responseEntity = restTemplate.getForEntity(url.replace("{community}", pid), Response.class); Response response = responseEntity.getBody(); if (response != null && responseEntity.getStatusCode() == HttpStatus.OK) { return response.getResponse();