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

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

View File

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

View File

@@ -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<User> getUser = userRepository.findById(user.getId());
if (getUser.isPresent()) {
user.setId(getUser.get().getId());
return userRepository.save(user);
} else {
return null;
}
}
}

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