78 lines
2.4 KiB
Java
78 lines
2.4 KiB
Java
package org.baeldung.persistence.service;
|
|
|
|
import javax.transaction.Transactional;
|
|
|
|
import org.baeldung.hashing.HashGenerator;
|
|
import org.baeldung.persistence.dao.UserRepository;
|
|
import org.baeldung.persistence.dao.VerificationTokenRepository;
|
|
import org.baeldung.persistence.model.Role;
|
|
import org.baeldung.persistence.model.User;
|
|
import org.baeldung.persistence.model.VerificationToken;
|
|
import org.baeldung.validation.service.EmailExistsException;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
@Transactional
|
|
public class UserService implements IUserService {
|
|
@Autowired
|
|
private UserRepository repository;
|
|
|
|
@Autowired
|
|
private VerificationTokenRepository tokenRepository;
|
|
|
|
@Autowired
|
|
private HashGenerator hashGenerator;
|
|
|
|
@Override
|
|
public User registerNewUserAccount(UserDto accountDto) throws EmailExistsException {
|
|
if (emailExist(accountDto.getEmail())) {
|
|
throw new EmailExistsException("There is an account with that email adress: " + accountDto.getEmail());
|
|
}
|
|
User user = new User();
|
|
user.setFirstName(accountDto.getFirstName());
|
|
user.setLastName(accountDto.getLastName());
|
|
String hashedPassword = hashGenerator.getHashedPassword(accountDto.getPassword());
|
|
user.setPassword(hashedPassword);
|
|
user.setEmail(accountDto.getEmail());
|
|
user.setRole(new Role(Integer.valueOf(1), user));
|
|
return repository.save(user);
|
|
}
|
|
|
|
@Override
|
|
public User getUser(String verificationToken) {
|
|
User user = tokenRepository.findByToken(verificationToken).getUser();
|
|
return user;
|
|
}
|
|
|
|
@Override
|
|
public VerificationToken getVerificationToken(String VerificationToken) {
|
|
return tokenRepository.findByToken(VerificationToken);
|
|
}
|
|
|
|
@Override
|
|
public void saveRegisteredUser(User user) {
|
|
repository.save(user);
|
|
}
|
|
|
|
@Override
|
|
public void deleteUser(User user) {
|
|
repository.delete(user);
|
|
}
|
|
|
|
@Override
|
|
public void createVerificationTokenForUser(User user, String token) {
|
|
VerificationToken myToken = new VerificationToken(token, user);
|
|
tokenRepository.save(myToken);
|
|
}
|
|
|
|
private boolean emailExist(String email) {
|
|
User user = repository.findByEmail(email);
|
|
if (user != null) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|