Fixes creating of the new user and some issues in handler and handler
This commit is contained in:
@@ -37,14 +37,19 @@ public class UserService {
|
||||
return createUserDtoMono
|
||||
.flatMap(createUserDto -> userRepository
|
||||
.findByUsername(createUserDto.username())
|
||||
.map(user -> {
|
||||
log.error("user with username " + createUserDto.username() + " already exists");
|
||||
return user.toGetUserDto();
|
||||
})
|
||||
.switchIfEmpty(createUserDtoMono.flatMap(userDto -> userRepository
|
||||
.save(userDto.toUser())
|
||||
.map(User::toGetUserDto)
|
||||
)));
|
||||
.hasElement()
|
||||
.flatMap(isUserPresent -> Boolean.TRUE.equals(isUserPresent)
|
||||
?
|
||||
Mono.error(new UserServiceException("user with username " + createUserDto.username() + " already exists"))
|
||||
:
|
||||
createUser(createUserDto)));
|
||||
}
|
||||
|
||||
private Mono<GetUserDto> createUser(CreateUserDto createUserDto) {
|
||||
var user = createUserDto.toUser();
|
||||
return userRepository
|
||||
.save(user)
|
||||
.map(User::toGetUserDto);
|
||||
}
|
||||
|
||||
public Mono<GetUserDto> deleteUser(String userId) {
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Routing {
|
||||
.andRoute(POST("/").and(accept(MediaType.APPLICATION_JSON)), teamHandlers::addTeam)
|
||||
.andRoute(DELETE("/{id}").and(accept(MediaType.APPLICATION_JSON)), teamHandlers::deleteTeam))
|
||||
.andNest(path("/users"),
|
||||
RouterFunctions.route(GET("/{id}").and(accept(MediaType.APPLICATION_JSON)), userHandlers::findById)
|
||||
RouterFunctions.route(GET("/id/{id}").and(accept(MediaType.APPLICATION_JSON)), userHandlers::findById)
|
||||
.andRoute(GET("/{username}").and(accept(MediaType.APPLICATION_JSON)), userHandlers::findByUsername)
|
||||
.andRoute(POST("/").and(accept(MediaType.APPLICATION_JSON)), userHandlers::createUser)
|
||||
.andRoute(DELETE("/{id}").and(accept(MediaType.APPLICATION_JSON)), userHandlers::deleteUser))
|
||||
|
||||
@@ -17,7 +17,7 @@ public class UserHandlers {
|
||||
private final UserService userService;
|
||||
|
||||
public Mono<ServerResponse> findById(ServerRequest serverRequest) {
|
||||
var userId = serverRequest.pathVariable("userId");
|
||||
var userId = serverRequest.pathVariable("id");
|
||||
return GlobalRoutingHandler.doRequest(userService.findById(userId), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class UserHandlers {
|
||||
}
|
||||
|
||||
public Mono<ServerResponse> deleteUser(ServerRequest serverRequest) {
|
||||
var userId = serverRequest.pathVariable("userId");
|
||||
var userId = serverRequest.pathVariable("id");
|
||||
return GlobalRoutingHandler.doRequest(userService.deleteUser(userId), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user