Код

Код


@AllArgsConstructor

@Configuration

public class RoutesConfig {

  private final ModelMapper modelMapper;

  private final UserService userService;


...


  @Bean

  RouterFunction users() {

    return RouterFunctions.route(

            GET("/api/users"),

            (req) -> ServerResponse

                .ok()

                .body(userService.findAll().flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))

                    ),

                    UserDto.class)

        )

        .and(RouterFunctions.route(

            GET("/api/users/{userId}"),

            (req) -> ServerResponse

                .ok()

                .body(userService.findById(Long.parseLong(req.pathVariable("userId")))

                    .flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))), UserDto.class)))

        .and(RouterFunctions.route(

            POST("/api/users"),

            (ServerRequest req) -> {

              Mono user = req.bodyToMono(User.class);

              return ServerResponse

                  .ok()

                  .body(user.flatMap(userService::addUser)

                      .flatMap(usr -> Mono.just(modelMapper.map(usr, UserDto.class))), UserDto.class);

            }));

  }

}

Report Page