From 10dec4e511f73a891ea998cfeff57a8a5fb7de0f Mon Sep 17 00:00:00 2001 From: Seifeldahshan Date: Wed, 16 Oct 2024 19:00:31 +0300 Subject: [PATCH 1/2] Describe the changes you made --- .../upwork/controller/user/UserController.java | 16 ++++++++++++++++ .../activecourses/upwork/dto/ResponseDto.java | 2 ++ .../upwork/repository/user/UserRepository.java | 2 ++ .../upwork/service/user/UserService.java | 1 + .../upwork/service/user/userServiceImpl.java | 12 ++++++++++-- 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/activecourses/upwork/controller/user/UserController.java b/src/main/java/com/activecourses/upwork/controller/user/UserController.java index f96e565..b22653e 100644 --- a/src/main/java/com/activecourses/upwork/controller/user/UserController.java +++ b/src/main/java/com/activecourses/upwork/controller/user/UserController.java @@ -17,6 +17,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.server.ResponseStatusException; @Tag(name = "User", description = "User API") @RestController @@ -87,4 +89,18 @@ public ResponseEntity updateUserProfile( } } + @PreAuthorize("hasRole('ROLE_ADMIN')") + @DeleteMapping + public ResponseEntity DeleteUserbyID( + @RequestParam(value = "id", required = true ) Integer id + ){ + try { + userService.deleteUserbyId(id); + ResponseDto responseDto = new ResponseDto(HttpStatus.OK,true,"User deleted successfully",null); + return new ResponseEntity<>(responseDto, HttpStatus.OK); + } catch (ResponseStatusException e) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + + } } diff --git a/src/main/java/com/activecourses/upwork/dto/ResponseDto.java b/src/main/java/com/activecourses/upwork/dto/ResponseDto.java index 87a52f2..d5e7905 100644 --- a/src/main/java/com/activecourses/upwork/dto/ResponseDto.java +++ b/src/main/java/com/activecourses/upwork/dto/ResponseDto.java @@ -3,9 +3,11 @@ import lombok.Builder; import lombok.Data; import org.springframework.http.HttpStatus; +import lombok.AllArgsConstructor; @Data @Builder +@AllArgsConstructor public class ResponseDto { private HttpStatus status; private boolean success; diff --git a/src/main/java/com/activecourses/upwork/repository/user/UserRepository.java b/src/main/java/com/activecourses/upwork/repository/user/UserRepository.java index 5055700..7672069 100644 --- a/src/main/java/com/activecourses/upwork/repository/user/UserRepository.java +++ b/src/main/java/com/activecourses/upwork/repository/user/UserRepository.java @@ -11,4 +11,6 @@ public interface UserRepository extends JpaRepository { Optional findByEmail(String email); Optional findById(int id); Optional findByVerificationToken(String token); + void deleteById(int id); + } \ No newline at end of file diff --git a/src/main/java/com/activecourses/upwork/service/user/UserService.java b/src/main/java/com/activecourses/upwork/service/user/UserService.java index 15cba7b..50a0ca5 100644 --- a/src/main/java/com/activecourses/upwork/service/user/UserService.java +++ b/src/main/java/com/activecourses/upwork/service/user/UserService.java @@ -7,5 +7,6 @@ public interface UserService { UserResponseDto getAllUsers(int pageNo, int pageSize, String sortBy, String sortDir); User findByEmail(String email); + String deleteUserbyId(Integer id); } diff --git a/src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java b/src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java index 72afd00..1dcaaac 100644 --- a/src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java +++ b/src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java @@ -12,6 +12,8 @@ import org.springframework.data.domain.Sort; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; +import org.springframework.http.HttpStatus; +import org.springframework.web.server.ResponseStatusException; import java.util.List; @@ -59,6 +61,12 @@ public User findByEmail(String email) { return userRepository.findByEmail(email). orElseThrow(()->new UsernameNotFoundException("User Not Found")); } - - + @Override + public String deleteUserbyId(Integer id){ + if ( !userRepository.existsById(id)){ + throw new ResponseStatusException(HttpStatus.NOT_FOUND); + } + userRepository.deleteById(id); + return "User deleted successfully"; + } } From 99f467b66ccfd690a13f1dd80a2e3df233a59a99 Mon Sep 17 00:00:00 2001 From: Seifeldahshan Date: Wed, 16 Oct 2024 19:03:31 +0300 Subject: [PATCH 2/2] delete user account as an admin --- .../service/user/{userServiceImpl.java => UserServiceImpl.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/java/com/activecourses/upwork/service/user/{userServiceImpl.java => UserServiceImpl.java} (100%) diff --git a/src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java b/src/main/java/com/activecourses/upwork/service/user/UserServiceImpl.java similarity index 100% rename from src/main/java/com/activecourses/upwork/service/user/userServiceImpl.java rename to src/main/java/com/activecourses/upwork/service/user/UserServiceImpl.java