diff --git a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java index 12d2cfc..224267d 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/RegistryCalls.java @@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -55,7 +56,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public List getUserIdentifiersByCoPersonId(Integer coPersonId) { + public List getUserIdentifiersByCoPersonId(Integer coPersonId) throws RestClientException { List ids = new ArrayList<>(); Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); @@ -86,7 +87,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public List getCoPersonIdsByEmail(String email) { + public List getCoPersonIdsByEmail(String email) throws RestClientException { List coPersonIds = new ArrayList<>(); Map params = new HashMap<>(); params.put("mail", email); @@ -113,7 +114,7 @@ public class RegistryCalls implements AaiRegistryService { } } - public Integer getCoPersonIdByIdentifier(String sub) { + public Integer getCoPersonIdByIdentifier(String sub) throws RestClientException { Map params = new HashMap<>(); params.put("search.identifier", sub); params.put("coid", coid); @@ -122,7 +123,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getCous(String name) { + public JsonArray getCous(String name) throws RestClientException { Map params = new HashMap<>(); if (name != null) { try { @@ -163,7 +164,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getRoles(Integer coPersonId) { + public JsonArray getRoles(Integer coPersonId) throws RestClientException { Map params = new HashMap<>(); params.put("coid", coid); params.put("copersonid", coPersonId.toString()); @@ -204,7 +205,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getUserGroups(Integer coPersonId) { + public JsonArray getUserGroups(Integer coPersonId) throws RestClientException { Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); JsonElement response = httpUtils.get("co_groups.json", params); @@ -212,7 +213,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonObject getUserAdminGroup(Integer coPersonId, Integer couId) { + public JsonObject getUserAdminGroup(Integer coPersonId, Integer couId) throws RestClientException { Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); JsonElement response = httpUtils.get("co_groups.json", params); @@ -229,7 +230,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getCouGroups(Integer couId) { + public JsonArray getCouGroups(Integer couId) throws RestClientException { Map params = new HashMap<>(); params.put("couid", couId.toString()); JsonElement response = httpUtils.get("co_groups.json", params); @@ -248,7 +249,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getGroupMembers(Integer coGroupId) { + public JsonArray getGroupMembers(Integer coGroupId) throws RestClientException { Map params = new HashMap<>(); params.put("cogroupid", coGroupId.toString()); JsonElement response = httpUtils.get("co_group_members.json", params); @@ -257,7 +258,7 @@ public class RegistryCalls implements AaiRegistryService { @Override - public JsonArray getUserEmailByCouId(Integer couId, boolean admin) { + public JsonArray getUserEmailByCouId(Integer couId, boolean admin) throws RestClientException { Map params = new HashMap<>(); if (couId == null) { throw new IllegalArgumentException("Provided 'couId' is null"); @@ -288,7 +289,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getUsersByCouId(Integer couId) { + public JsonArray getUsersByCouId(Integer couId) throws RestClientException { Map params = new HashMap<>(); params.put("couid", couId.toString()); JsonElement response = httpUtils.get("co_person_roles.json", params); @@ -321,7 +322,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getUserNamesByCouId(Integer couId, boolean admin) { + public JsonArray getUserNamesByCouId(Integer couId, boolean admin) throws RestClientException { Map params = new HashMap<>(); params.put("couid", couId.toString()); if (admin) { @@ -341,7 +342,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public JsonArray getUserIdByCouId(Integer couId, boolean admin) { + public JsonArray getUserIdByCouId(Integer couId, boolean admin) throws RestClientException { Map params = new HashMap<>(); params.put("couid", couId.toString()); if (admin) { @@ -361,26 +362,26 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public void assignMemberRole(Integer coPersonId, Integer couId) { + public void assignMemberRole(Integer coPersonId, Integer couId) throws RestClientException { httpUtils.post("co_person_roles.json", jsonUtils.coPersonRoles(coPersonId, couId, "Active")); } @Override - public void removeMemberRole(Integer coPersonId, Integer couId, Integer id) { + public void removeMemberRole(Integer coPersonId, Integer couId, Integer id) throws RestClientException { if (id != null) { httpUtils.put("co_person_roles/" + id + ".json", jsonUtils.coPersonRoles(coPersonId, couId, "Deleted")); } } @Override - public Integer createRole(Role role) { + public Integer createRole(Role role) throws RestClientException { JsonElement element = httpUtils.post("cous.json", jsonUtils.createNewCou(role)); return element.getAsJsonObject().get("Id").getAsInt(); } @Override - public String getUserEmail(Integer coPersonId) { + public String getUserEmail(Integer coPersonId) throws RestClientException { Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); JsonElement response = httpUtils.get("email_addresses.json", params); @@ -389,7 +390,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public String getUserNames(Integer coPersonId) { + public String getUserNames(Integer coPersonId) throws RestClientException { Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); JsonElement response = httpUtils.get("names.json", params); @@ -402,7 +403,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public String getUserId(Integer coPersonId) { + public String getUserId(Integer coPersonId) throws RestClientException { Map params = new HashMap<>(); params.put("copersonid", coPersonId.toString()); JsonElement response = httpUtils.get("identifiers.json", params); @@ -411,7 +412,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public void assignAdminRole(Integer coPersonId, Integer couId) { + public void assignAdminRole(Integer coPersonId, Integer couId) throws RestClientException { JsonObject group = getCouAdminGroup(couId); if (group != null) { httpUtils.post("co_group_members.json", jsonUtils.coGroupMembers(group.get("Id").getAsInt(), coPersonId, true)); @@ -419,7 +420,7 @@ public class RegistryCalls implements AaiRegistryService { } @Override - public void removeAdminRole(Integer coPersonId, Integer couId) { + public void removeAdminRole(Integer coPersonId, Integer couId) throws RestClientException { JsonObject adminGroup = this.getCouAdminGroup(couId); JsonArray admins = this.getGroupMembers(adminGroup.get("Id").getAsInt()); Integer id = null; diff --git a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/utils/HttpUtils.java b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/utils/HttpUtils.java index b294717..07b2f72 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/utils/HttpUtils.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/aai/registry/utils/HttpUtils.java @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; +import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -32,7 +33,7 @@ public class HttpUtils { @Value("${services.provide.aai.registry.password}") private String password; - public JsonElement post(String path, JsonObject body) { + public JsonElement post(String path, JsonObject body) throws RestClientException { RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = createHeaders(user, password); headers.setContentType(MediaType.APPLICATION_JSON); @@ -41,7 +42,7 @@ public class HttpUtils { return getResponseEntityAsJsonElement(responseEntity); } - public JsonElement put(String path, JsonObject body) { + public JsonElement put(String path, JsonObject body) throws RestClientException { RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = createHeaders(user, password); headers.setContentType(MediaType.APPLICATION_JSON); @@ -50,7 +51,7 @@ public class HttpUtils { return getResponseEntityAsJsonElement(responseEntity); } - public JsonElement get(String path, Map params) { + public JsonElement get(String path, Map params) throws RestClientException { RestTemplate restTemplate = new RestTemplate(); String url = createUrl(registryUrl + path, params); ResponseEntity responseEntity = restTemplate.exchange @@ -58,7 +59,7 @@ public class HttpUtils { return getResponseEntityAsJsonElement(responseEntity); } - public JsonElement delete(String path) { + public JsonElement delete(String path) throws RestClientException { RestTemplate restTemplate = new RestTemplate(); String url = registryUrl + path; ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.DELETE, new HttpEntity<>(createHeaders(user, password)), String.class);