This repository has been archived on 2025-06-18. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
casino/backend/src/main/java/de/szut/casino/user/UserService.java
Constantin Simonis 74798949c6
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
style: clean up whitespace in multiple files
2025-05-21 10:42:13 +02:00

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);
}
}