diff --git a/UserService/UserService/src/main/java/com/lcwd/user/service/controllers/UserController.java b/UserService/UserService/src/main/java/com/lcwd/user/service/controllers/UserController.java index 2446e16..2aa2726 100644 --- a/UserService/UserService/src/main/java/com/lcwd/user/service/controllers/UserController.java +++ b/UserService/UserService/src/main/java/com/lcwd/user/service/controllers/UserController.java @@ -65,4 +65,12 @@ public ResponseEntity> getAllUser() { List allUser = userService.getAllUser(); return ResponseEntity.ok(allUser); } + + // update the user + @PutMapping("/{userId}") + public ResponseEntity updateUser(@PathVariable String userId, @RequestBody User user) throws ResourceNotFoundException { + User updatedUser = userService.updateUser(userId, user); + String message = "User with ID " + userId + " has been successfully updated."; + return ResponseEntity.ok(message); + } } diff --git a/UserService/UserService/src/main/java/com/lcwd/user/service/services/UserService.java b/UserService/UserService/src/main/java/com/lcwd/user/service/services/UserService.java index 26f516a..f4d0f59 100644 --- a/UserService/UserService/src/main/java/com/lcwd/user/service/services/UserService.java +++ b/UserService/UserService/src/main/java/com/lcwd/user/service/services/UserService.java @@ -20,6 +20,7 @@ public interface UserService { //TODO: delete //TODO: update - + // this method help us to update user in server + User updateUser(String userId,User user) throws ResourceNotFoundException; } diff --git a/UserService/UserService/src/main/java/com/lcwd/user/service/services/impl/UserServiceImpl.java b/UserService/UserService/src/main/java/com/lcwd/user/service/services/impl/UserServiceImpl.java index 4e52bae..b83ebda 100644 --- a/UserService/UserService/src/main/java/com/lcwd/user/service/services/impl/UserServiceImpl.java +++ b/UserService/UserService/src/main/java/com/lcwd/user/service/services/impl/UserServiceImpl.java @@ -75,4 +75,32 @@ public User getUser(String userId) { return user; } + + // update the user + // step we use optional to avoid null pointer exception + // first we need user present with given user id in server then we get user . + // then update the user + @Override + public User updateUser(String userId, User user) throws ResourceNotFoundException { + Optional optionalUser = userRepository.findById(userId); + if(optionalUser.isPresent()) { + User user1 = optionalUser.get(); + if (user.getName() != null) { + user1.setName(user.getName()); + } + if (user.getEmail() != null) { + user1.setEmail(user.getEmail()); + } + if (user.getAbout() != null) { + user1.setAbout(user.getAbout()); + } + + return userRepository.save(user); + } + else{ + throw new ResourceNotFoundException ("User not found with ID: " + userId); + } + } + + }