You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Facebook/BE/src/main/java/org/example/services/UserService.java

36 lines
1.2 KiB

package org.example.services;
import org.example.models.User;
import org.example.repositories.UserRepository;
import org.example.requests.CreateUserRequest;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@Service
public class UserService {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
public UserService(UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
}
public User createUser(CreateUserRequest request) {
if (userRepository.existsByUsername(request.getUsername())) {
throw new IllegalArgumentException("Username already exists. Please choose a different username.");
}
User user = new User();
user.setName(request.getName());
// TODO: make sure that this username doesn't exist.
user.setUsername(request.getUsername());
user.setRoles(request.getRoles());
user.setPassword(passwordEncoder.encode(request.getPassword()));
userRepository.save(user);
return user;
}
}