34 lines
1.1 KiB
Java
34 lines
1.1 KiB
Java
package pl.edu.amu.wmi.bookapi.api;
|
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.security.crypto.bcrypt.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import pl.edu.amu.wmi.bookapi.exceptions.RegisterException;
|
|
import pl.edu.amu.wmi.bookapi.models.*;
|
|
import pl.edu.amu.wmi.bookapi.repositories.*;
|
|
|
|
@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 {
|
|
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
|
|
try {
|
|
userRepository.save(user);
|
|
} catch (DuplicateKeyException e) {
|
|
throw new RegisterException("Login already in use");
|
|
}
|
|
}
|
|
}
|