diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java index e9a82ac..d3098b7 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java @@ -96,10 +96,10 @@ public class UserResource { .build(); } - @DeleteMapping("{id}") + @DeleteMapping("{userId}") @PreAuthorize("hasAuthority('user:delete')") - public HttpResponse deleteUser(@PathVariable long id) { - userService.deleteUser(id); + public HttpResponse deleteUser(@PathVariable String userId) { + userService.deleteUser(userId); return HttpResponse.builder() .httpStatusCode(OK.value()) .httpStatus(OK) diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/repository/UserRepository.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/repository/UserRepository.java index a7cf38c..d10882a 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/repository/UserRepository.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/repository/UserRepository.java @@ -15,4 +15,6 @@ public interface UserRepository extends JpaRepository { Boolean existsByEmail(String email); + Optional findByUserId(String userId); + } diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserService.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserService.java index 756ae0a..b296db5 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserService.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserService.java @@ -23,7 +23,7 @@ public interface UserService extends UserDetailsService { User updateUser(String username, UserDto userDto); - void deleteUser(long id); + void deleteUser(String userId); void resetPassword(String email); diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserServiceImpl.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserServiceImpl.java index 532e002..a7e5d84 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserServiceImpl.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/service/UserServiceImpl.java @@ -218,8 +218,11 @@ public class UserServiceImpl implements UserService { } @Override - public void deleteUser(long id) { - userRepository.deleteById(id); + public void deleteUser(String userId) { + User userToBeDeleted = userRepository + .findByUserId(userId) + .orElseThrow(() -> new UserNotFoundException("User was not found")); + userRepository.delete(userToBeDeleted); } @Override diff --git a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java index cbd6adb..85f99c4 100644 --- a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java +++ b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java @@ -651,10 +651,10 @@ class UserResourceTest extends BaseUserTest { superAdmin.setAuthorities(Role.ROLE_SUPER_ADMIN.getAuthorities()); String token = jwtTokenProvider.generateJwtToken(new UserPrincipal(superAdmin)); - long id = user.getId(); + String userId = user.getUserId(); //when - var requestEntity = RequestEntity.delete("/user/{id}", id) + var requestEntity = RequestEntity.delete("/user/{userId}", userId) .headers(headers -> headers.setBearerAuth(token)) .build(); var responseEntity = restTemplate.exchange(requestEntity, HttpResponse.class); @@ -676,10 +676,10 @@ class UserResourceTest extends BaseUserTest { User roleUser = createRandomUser(); String token = jwtTokenProvider.generateJwtToken(new UserPrincipal(roleUser)); - long id = user.getId(); + String userId = user.getUserId(); //when - var requestEntity = RequestEntity.delete("/user/{id}", id) + var requestEntity = RequestEntity.delete("/user/{userId}", userId) .headers(headers -> headers.setBearerAuth(token)) .build(); var responseEntity = restTemplate.exchange(requestEntity, HttpResponse.class); @@ -703,10 +703,10 @@ class UserResourceTest extends BaseUserTest { superAdmin.setAuthorities(Role.ROLE_SUPER_ADMIN.getAuthorities()); String token = jwtTokenProvider.generateJwtToken(new UserPrincipal(superAdmin)); - long id = Integer.MAX_VALUE; + String userId = UUID.randomUUID().toString(); //when - var requestEntity = RequestEntity.delete("/user/{id}", id) + var requestEntity = RequestEntity.delete("/user/{userId}", userId) .headers(headers -> headers.setBearerAuth(token)) .build(); var responseEntity = restTemplate.exchange(requestEntity, HttpResponse.class); @@ -718,7 +718,7 @@ class UserResourceTest extends BaseUserTest { .isNotNull() .hasNoNullFieldsOrProperties() .hasFieldOrPropertyWithValue("httpStatus", BAD_REQUEST) - .hasFieldOrPropertyWithValue("message", "NO CLASS NET.SHYSHKIN.STUDY.FULLSTACK.SUPPORTPORTAL.BACKEND.DOMAIN.USER ENTITY WITH ID 2147483647 EXISTS!"); + .hasFieldOrPropertyWithValue("message", "USER WAS NOT FOUND"); } } } \ No newline at end of file