|
|
@@ -0,0 +1,50 @@
|
|
|
+package cn.reghao.tnb.data.app.handler;
|
|
|
+
|
|
|
+import cn.reghao.tnb.data.app.model.po.UserProfile;
|
|
|
+import cn.reghao.tnb.data.app.repository.UserProfileRepository;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.web.reactive.function.server.ServerRequest;
|
|
|
+import org.springframework.web.reactive.function.server.ServerResponse;
|
|
|
+import reactor.core.publisher.Mono;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author reghao
|
|
|
+ * @date 2025-05-29 11:37:29
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class UserProfileHandler {
|
|
|
+ @Autowired
|
|
|
+ private UserProfileRepository userRepository;
|
|
|
+
|
|
|
+ public Mono<ServerResponse> addUser(ServerRequest request) {
|
|
|
+ return ServerResponse.ok()
|
|
|
+ .contentType(MediaType.APPLICATION_JSON)
|
|
|
+ .body(userRepository.saveAll(request.bodyToMono(UserProfile.class)), UserProfile.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Mono<ServerResponse> delUser(ServerRequest request) {
|
|
|
+ return userRepository.findById(Integer.parseInt(request.pathVariable("id")))
|
|
|
+ .flatMap(user -> userRepository.delete(user).then(ServerResponse.ok().build()))
|
|
|
+ .switchIfEmpty(ServerResponse.notFound().build());
|
|
|
+ }
|
|
|
+
|
|
|
+ public Mono<ServerResponse> updateUser(ServerRequest request) {
|
|
|
+ return ServerResponse.ok()
|
|
|
+ .contentType(MediaType.APPLICATION_JSON)
|
|
|
+ .body(userRepository.saveAll(request.bodyToMono(UserProfile.class)), UserProfile.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Mono<ServerResponse> getAllUser(ServerRequest request) {
|
|
|
+ return ServerResponse.ok()
|
|
|
+ .contentType(MediaType.APPLICATION_JSON)
|
|
|
+ .body(userRepository.findAll(), UserProfile.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ public Mono<ServerResponse> getAllUserStream(ServerRequest request) {
|
|
|
+ return ServerResponse.ok()
|
|
|
+ .contentType(MediaType.TEXT_EVENT_STREAM)
|
|
|
+ .body(userRepository.findAll(), UserProfile.class);
|
|
|
+ }
|
|
|
+}
|