user crud event handler to auth user

This commit is contained in:
liquidjoo
2019-07-09 14:34:22 +09:00
parent 8db3469c6f
commit 2b7f23b7e7
7 changed files with 96 additions and 20 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -5,4 +5,6 @@ import io.bluemoon.testservice.domain.user.User;
public interface UserService {
User createUser(User user);
User updateUser(User user);
}

View File

@@ -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<User> 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;
}
}
}