42 lines
1.6 KiB
Java
42 lines
1.6 KiB
Java
package pl.edu.amu.wmi.bookapi.api;
|
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import pl.edu.amu.wmi.bookapi.exceptions.RegisterException;
|
|
import pl.edu.amu.wmi.bookapi.models.UserDocument;
|
|
import pl.edu.amu.wmi.bookapi.repositories.UserRepository;
|
|
|
|
import javax.security.auth.login.LoginException;
|
|
|
|
@RestController
|
|
@RequestMapping("/users")
|
|
public class UserController {
|
|
|
|
private UserRepository userRepository;
|
|
private BCryptPasswordEncoder bCryptPasswordEncoder;
|
|
|
|
public UserController(UserRepository userRepository,
|
|
BCryptPasswordEncoder bCryptPasswordEncoder) {
|
|
this.userRepository = userRepository;
|
|
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
|
|
}
|
|
|
|
@PostMapping("/sign-up")
|
|
public void signUp(@RequestBody UserDocument user) throws RegisterException {
|
|
System.out.println("Registering user");
|
|
System.out.println(user);
|
|
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
|
|
try {
|
|
userRepository.save(user);
|
|
} catch (DuplicateKeyException e) {
|
|
throw new RegisterException("Login already in use");
|
|
}
|
|
System.out.println(userRepository.findAll());
|
|
}
|
|
}
|