Some checks failed
CI / Get Changed Files (pull_request) Successful in 8s
CI / Docker frontend validation (pull_request) Successful in 24s
CI / eslint (pull_request) Successful in 30s
CI / oxlint (pull_request) Successful in 39s
CI / prettier (pull_request) Failing after 43s
CI / Checkstyle Main (pull_request) Failing after 1m22s
CI / test-build (pull_request) Successful in 1m44s
CI / Docker backend validation (pull_request) Failing after 1m54s
73 lines
2.3 KiB
Java
73 lines
2.3 KiB
Java
package de.szut.casino.user;
|
|
|
|
import de.szut.casino.user.dto.CreateUserDto;
|
|
import jakarta.persistence.EntityExistsException;
|
|
import org.apache.commons.lang3.RandomStringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.util.Optional;
|
|
|
|
@Service
|
|
public class UserService {
|
|
@Autowired
|
|
private UserRepository userRepository;
|
|
|
|
@Autowired
|
|
private PasswordEncoder passwordEncoder;
|
|
|
|
public UserEntity createUser(CreateUserDto createUserDto) {
|
|
if (userRepository.existsByUsername(createUserDto.getUsername())) {
|
|
throw new EntityExistsException("Username is already taken");
|
|
}
|
|
|
|
if (userRepository.existsByEmail(createUserDto.getEmail())) {
|
|
throw new EntityExistsException("Email is already in use");
|
|
}
|
|
|
|
UserEntity user = new UserEntity(
|
|
createUserDto.getEmail(),
|
|
createUserDto.getUsername(),
|
|
passwordEncoder.encode(createUserDto.getPassword()),
|
|
BigDecimal.valueOf(100),
|
|
RandomStringUtils.randomAlphanumeric(64)
|
|
);
|
|
|
|
return userRepository.save(user);
|
|
}
|
|
|
|
public Optional<UserEntity> getCurrentUser() {
|
|
String username = SecurityContextHolder.getContext().getAuthentication().getName();
|
|
|
|
return userRepository.findByUsername(username);
|
|
}
|
|
|
|
public Optional<UserEntity> getUserByVerificationToken(String token) {
|
|
return this.userRepository.findOneByVerificationToken(token);
|
|
}
|
|
|
|
public void saveUser(UserEntity user) {
|
|
userRepository.save(user);
|
|
}
|
|
|
|
public boolean isVerified(String usernameOrEmail) {
|
|
Optional<UserEntity> optionalUser = userRepository.findOneByUsernameOrEmail(usernameOrEmail);
|
|
|
|
if (!optionalUser.isPresent()) {
|
|
return false;
|
|
}
|
|
|
|
return optionalUser.get().getEmailVerified();
|
|
}
|
|
|
|
public Optional<UserEntity> getUserByEmail(String email) {
|
|
return userRepository.findByEmail(email);
|
|
}
|
|
|
|
public Optional<UserEntity> getUserByPasswordResetToken(String token) {
|
|
return this.userRepository.findOneByPasswordResetToken(token);
|
|
}
|
|
}
|