diff --git a/src/main/java/org/upsmf/grievance/repository/DepartmentRepository.java b/src/main/java/org/upsmf/grievance/repository/DepartmentRepository.java index e0c72820bc69b2e296265d6ae238e95ff112af56..e2931935c5abaed15d172e8e80767e74a947f3d4 100644 --- a/src/main/java/org/upsmf/grievance/repository/DepartmentRepository.java +++ b/src/main/java/org/upsmf/grievance/repository/DepartmentRepository.java @@ -8,4 +8,6 @@ import org.upsmf.grievance.model.Department; public interface DepartmentRepository extends JpaRepository<Department, Long> { Department findByUserId(long userId); + + void deleteByUserId(long userId); } diff --git a/src/main/java/org/upsmf/grievance/service/impl/IntegrationServiceImpl.java b/src/main/java/org/upsmf/grievance/service/impl/IntegrationServiceImpl.java index fc87183acb07f0af0f4e2abd440bc401deeb3568..569f188af6e120b0decf011ff135ecf8fb11d6cb 100644 --- a/src/main/java/org/upsmf/grievance/service/impl/IntegrationServiceImpl.java +++ b/src/main/java/org/upsmf/grievance/service/impl/IntegrationServiceImpl.java @@ -348,6 +348,9 @@ public class IntegrationServiceImpl implements IntegrationService { String[] role = new String[1]; role[0] = userDto.getAttributes().get("Role"); userDetails.setRoles(role); + if(role[0].equalsIgnoreCase("SUPERADMIN")) { + departmentRepository.deleteByUserId(userDetails.getId()); + } } // updating user userDetails = userRepository.save(userDetails); @@ -490,45 +493,59 @@ public class IntegrationServiceImpl implements IntegrationService { @Override public User activateUser(JsonNode payload) throws Exception{ - ObjectMapper mapper = new ObjectMapper(); - ResponseEntity<String> response = restTemplate.exchange( - activeUserUrl, HttpMethod.POST, - new HttpEntity<>(payload), String.class - ); - if (response.getStatusCode() == HttpStatus.OK) { - String getUsersResponseBody = response.getBody(); - JsonNode getUsersJsonNode = mapper.readTree(getUsersResponseBody); - - JsonNode userContentData = getUsersJsonNode.path("result").path("response").path("content").get(0); - // get user by key - String userName = payload.get("userName").asText(); - User user = userRepository.findByUsername(userName); - user.setStatus(1); - return userRepository.save(user); + long id = payload.get("id").asLong(-1); + if(id > 0) { + Optional<User> user = userRepository.findById(id); + if(user.isPresent()){ + User userDetails = user.get(); + try { + ObjectMapper mapper = new ObjectMapper(); + ObjectNode root = mapper.createObjectNode(); + root.put("username", userDetails.getUsername()); + ResponseEntity<String> response = restTemplate.exchange( + activeUserUrl, HttpMethod.POST, + new HttpEntity<>(root), String.class + ); + if (response.getStatusCode() == HttpStatus.OK) { + userDetails.setStatus(1); + return userRepository.save(userDetails); + } + throw new RuntimeException("Error in activating user."); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Error in activating user."); + } + } } - throw new RuntimeException("Error in activating user."); + throw new RuntimeException("Unable to find user details for provided Id."); } @Override public User deactivateUser(JsonNode payload) throws Exception { - ObjectMapper mapper = new ObjectMapper(); - ResponseEntity<String> response = restTemplate.exchange( - deactivateUserUrl, HttpMethod.POST, - new HttpEntity<>(payload), String.class - ); - if (response.getStatusCode() == HttpStatus.OK) { - String getUsersResponseBody = response.getBody(); - JsonNode getUsersJsonNode = mapper.readTree(getUsersResponseBody); - - JsonNode userContentData = getUsersJsonNode.path("result").path("response").path("content").get(0); - - // get user by key - String userName = payload.get("userName").asText(); - User user = userRepository.findByUsername(userName); - user.setStatus(0); - return userRepository.save(user); + long id = payload.get("id").asLong(-1); + if(id > 0) { + Optional<User> user = userRepository.findById(id); + if(user.isPresent()){ + User userDetails = user.get(); + ObjectMapper mapper = new ObjectMapper(); + ObjectNode root = mapper.createObjectNode(); + root.put("username", userDetails.getUsername()); + try { + ResponseEntity<String> response = restTemplate.exchange( + deactivateUserUrl, HttpMethod.POST, + new HttpEntity<>(root), String.class); + if (response.getStatusCode() == HttpStatus.OK) { + userDetails.setStatus(0); + return userRepository.save(userDetails); + } + throw new RuntimeException("Error in deactivating user."); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("Error in deactivating user."); + } + } } - throw new RuntimeException("Error in deactivating user."); + throw new RuntimeException("Unable to find user details for provided Id."); } @Override