User event handler to OAuth user

This commit is contained in:
liquidjoo
2019-07-09 13:56:38 +09:00
parent a793b89656
commit 7139f1b098
3 changed files with 62 additions and 1 deletions

View File

@@ -1,4 +1,21 @@
package io.bluemoon.testservice.service.user;
import io.bluemoon.testservice.domain.user.User;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionPhase;
import org.springframework.transaction.event.TransactionalEventListener;
import java.io.IOException;
@Component
public class UserEventListener {
@Async
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, classes = UserServiceImpl.UserCreateEvent.class)
public void handle(UserServiceImpl.UserCreateEvent event) throws IOException {
User user = event.getUser();
// oauth
}
}

View File

@@ -1,4 +1,8 @@
package io.bluemoon.testservice.service.user;
import io.bluemoon.testservice.domain.user.User;
public interface UserService {
User createUser(User user);
}

View File

@@ -1,4 +1,44 @@
package io.bluemoon.testservice.service.user;
public class UserServiceImpl {
import io.bluemoon.testservice.domain.user.User;
import io.bluemoon.testservice.domain.user.UserRepository;
import lombok.Getter;
import lombok.NonNull;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService, ApplicationEventPublisherAware {
private UserRepository userRepository;
private ApplicationEventPublisher eventPublisher;
public UserServiceImpl(
UserRepository userRepository
) {
this.userRepository = userRepository;
}
@Override
public User createUser(User user) {
userRepository.save(user);
return null;
}
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.eventPublisher = applicationEventPublisher;
}
public static class UserCreateEvent {
@Getter
private User user;
private UserCreateEvent(@NonNull User user) {
this.user = user;
}
}
}