diff --git a/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java b/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java index aef379d7711e1d4d19e967361f7875dd138ac8d1..4b5f00671569a05278d7dc5b122a01a0aa0dd2a5 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java +++ b/src/main/java/com/tarento/upsmf/userManagement/controller/UserController.java @@ -37,6 +37,11 @@ public class UserController { return userHandler.userDetails(body); } + @PostMapping(value = "/emaildetails", consumes = "application/json", produces = "application/json") + public String userEmailDetails(@RequestBody final JsonNode body) throws URISyntaxException, IOException { + return userHandler.userEmailDetails(body); + } + @PostMapping(value = "/list", consumes = "application/json", produces = "application/json") public String listUser(@RequestBody final JsonNode body) throws URISyntaxException, IOException { return userHandler.listUser(body); diff --git a/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java b/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java index 66155e9591813ae634288df26f2c859cb1dc4ac2..d842b6b76203362db433158007d578d7aa2d7acf 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java +++ b/src/main/java/com/tarento/upsmf/userManagement/handler/UserHandler.java @@ -68,6 +68,12 @@ public class UserHandler { return userName; } + public String userEmailDetails(final JsonNode body) throws IOException { + JsonNode request = body.get("request"); + String userName = keycloakUserGetter.findUserByEmail(request.get("fieldName").asText(), request.get("fieldValue").asText()); + return userName; + } + public String listUser(final JsonNode body) throws URISyntaxException, IOException { logger.info("creating user with payload {} ", body.toPrettyString()); diff --git a/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserGetter.java b/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserGetter.java index 30b2aff50bb5931d5173a247afbfb2195915834b..60e53447f817419e7df9b1e0576b8a17bfb3828c 100644 --- a/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserGetter.java +++ b/src/main/java/com/tarento/upsmf/userManagement/utility/KeycloakUserGetter.java @@ -68,4 +68,29 @@ public class KeycloakUserGetter { logger.info("ResponseBody {}", responseBody); return responseBody; } + + public String findUserByEmail(final String fieldName, final String fieldValue) throws IOException { + String userEndpoint = KEYCLOAK_USER_BASE_URL; + logger.info("userEndpoint: " ,userEndpoint); + if(fieldName != null && fieldValue!= null ) { + userEndpoint = userEndpoint + "?" + fieldName + "=" + fieldValue; + logger.info("userEndpoint {} after adding email : " ,userEndpoint); + JsonNode adminToken = keycloakTokenRetriever.getAdminToken(); + logger.info("adminToken: " ,adminToken); + String accessToken = adminToken.get("access_token").asText(); + logger.info("accessToken: " ,accessToken); + + HttpClient httpClient = HttpClients.createDefault(); + HttpGet httpGet = new HttpGet(userEndpoint); + + httpGet.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken); + httpGet.setHeader(HttpHeaders.ACCEPT, "application/json"); + + org.apache.http.HttpResponse response = httpClient.execute(httpGet); + String responseBody = EntityUtils.toString(response.getEntity()); + logger.info("ResponseBody {}", responseBody); + return responseBody; + } + return "No Response Generated since the inputs were null/empty."; + } }