From 2b7f23b7e7cd561e33116a5be82a989dfb36816f Mon Sep 17 00:00:00 2001 From: liquidjoo Date: Tue, 9 Jul 2019 14:34:22 +0900 Subject: [PATCH] user crud event handler to auth user --- .../controller/SignController.java | 19 ---------- .../service/user/UserService.java | 10 +++++ .../service/user/UserServiceImpl.java | 37 +++++++++++++++++++ .../testservice/domain/oauth/OAuthUser.java | 14 +++++++ .../service/user/UserEventListener.java | 11 +++++- .../testservice/service/user/UserService.java | 2 + .../service/user/UserServiceImpl.java | 23 ++++++++++++ 7 files changed, 96 insertions(+), 20 deletions(-) delete mode 100644 authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java create mode 100644 authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserService.java create mode 100644 authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserServiceImpl.java create mode 100644 test-service/src/main/java/io/bluemoon/testservice/domain/oauth/OAuthUser.java diff --git a/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java deleted file mode 100644 index d96773b..0000000 --- a/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/controller/SignController.java +++ /dev/null @@ -1,19 +0,0 @@ -package io.bluemoon.authorizationserver2.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -@Controller -public class SignController { - - @PostMapping("/middleWare") - @ResponseBody - private String mid(@RequestBody Map request, @RequestHeader Map header) { - System.out.println(request); - System.out.println(header); - return "a"; - } -} diff --git a/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserService.java b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserService.java new file mode 100644 index 0000000..48151c2 --- /dev/null +++ b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserService.java @@ -0,0 +1,10 @@ +package io.bluemoon.authorizationserver2.service.user; + +import io.bluemoon.authorizationserver2.domain.user.User; + +public interface UserService { + + User createOAuthUser(User user); + + User updateOAuthUser(User user); +} diff --git a/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserServiceImpl.java b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserServiceImpl.java new file mode 100644 index 0000000..888dfad --- /dev/null +++ b/authorization-server2/src/main/java/io/bluemoon/authorizationserver2/service/user/UserServiceImpl.java @@ -0,0 +1,37 @@ +package io.bluemoon.authorizationserver2.service.user; + +import io.bluemoon.authorizationserver2.domain.user.User; +import io.bluemoon.authorizationserver2.domain.user.UserRepository; +import org.springframework.stereotype.Service; + +import java.util.Optional; + +@Service +public class UserServiceImpl implements UserService{ + + private UserRepository userRepository; + + public UserServiceImpl( + UserRepository userRepository + ) { + this.userRepository = userRepository; + } + + + @Override + public User createOAuthUser(User user) { + return userRepository.save(user); + } + + @Override + public User updateOAuthUser(User user) { + Optional getUser = userRepository.findById(user.getId()); + if (getUser.isPresent()) { + user.setId(getUser.get().getId()); + return userRepository.save(user); + + } else { + return null; + } + } +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/domain/oauth/OAuthUser.java b/test-service/src/main/java/io/bluemoon/testservice/domain/oauth/OAuthUser.java new file mode 100644 index 0000000..2e44835 --- /dev/null +++ b/test-service/src/main/java/io/bluemoon/testservice/domain/oauth/OAuthUser.java @@ -0,0 +1,14 @@ +package io.bluemoon.testservice.domain.oauth; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class OAuthUser { + + private String username; + private String password; + private String name; + private String email; + private String ResourceId; +} diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java index 70567fd..6d92160 100644 --- a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserEventListener.java @@ -13,7 +13,16 @@ public class UserEventListener { @Async @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, classes = UserServiceImpl.UserCreateEvent.class) - public void handle(UserServiceImpl.UserCreateEvent event) throws IOException { + public void createUserHandle(UserServiceImpl.UserCreateEvent event) throws IOException { + User user = event.getUser(); + + + // oauth + } + + @Async + @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, classes = UserServiceImpl.UserUpdateEvent.class) + public void updateUserHandle(UserServiceImpl.UserUpdateEvent event) throws IOException { User user = event.getUser(); // oauth diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java index 96a9ad9..33feb96 100644 --- a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserService.java @@ -5,4 +5,6 @@ import io.bluemoon.testservice.domain.user.User; public interface UserService { User createUser(User user); + + User updateUser(User user); } diff --git a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java index ca64e90..9c84dd6 100644 --- a/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java +++ b/test-service/src/main/java/io/bluemoon/testservice/service/user/UserServiceImpl.java @@ -8,6 +8,8 @@ import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.stereotype.Service; +import java.util.Optional; + @Service public class UserServiceImpl implements UserService, ApplicationEventPublisherAware { @@ -25,6 +27,18 @@ public class UserServiceImpl implements UserService, ApplicationEventPublisherAw public User createUser(User user) { userRepository.save(user); + eventPublisher.publishEvent(new UserCreateEvent(user)); + return null; + } + + @Override + public User updateUser(User user) { + Optional optionalUser = userRepository.findById(user.getId()); + if (optionalUser.isPresent()) { + user.setId(optionalUser.get().getId()); + userRepository.save(user); + eventPublisher.publishEvent(new UserUpdateEvent(user)); + } return null; } @@ -41,4 +55,13 @@ public class UserServiceImpl implements UserService, ApplicationEventPublisherAw this.user = user; } } + + public static class UserUpdateEvent { + @Getter + private User user; + + private UserUpdateEvent(@NonNull User user) { + this.user = user; + } + } }