dev add additional info user
Test Workflow / test (push) Successful in 11s

This commit is contained in:
vladp
2026-03-24 11:37:25 +07:00
parent 69c3d876ae
commit 40f8effb31
13 changed files with 429 additions and 2 deletions
@@ -0,0 +1,54 @@
package ru.soune.nocopy.service.user;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import ru.soune.nocopy.entity.user.UserAdditionalInfo;
import ru.soune.nocopy.exception.RegistrationAdditionalInfoNullException;
import ru.soune.nocopy.repository.UserAdditionalInfoRepository;
import java.util.List;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class AdditionalInfoService {
private final UserAdditionalInfoRepository additionalInfoRepository;
@Transactional
public void additionalInfo(String ip, String userAgent) {
if (ip == null || userAgent == null) {
throw new RegistrationAdditionalInfoNullException("Ip address or user agent is null");
}
UserAdditionalInfo userAdditionalInfo = UserAdditionalInfo.builder()
.ipAddress(ip)
.userAgent(userAgent)
.build();
additionalInfoRepository.save(userAdditionalInfo);
}
public UserAdditionalInfo getAdditionalInfoByUser(Long userId) {
return additionalInfoRepository.findById(userId).orElse(null);
}
public List<UserAdditionalInfo> getAllAdditionalInfos() {
return additionalInfoRepository.findAll();
}
public void deleteAdditionalInfo(Long userId) {
additionalInfoRepository.deleteById(userId);
}
@Transactional
public Optional<UserAdditionalInfo> updateAdditionalInfo(Long userId, String ip, String userAgent) {
return additionalInfoRepository.findById(userId)
.map(info -> {
info.setIpAddress(ip);
info.setUserAgent(userAgent);
return additionalInfoRepository.save(info);
});
}
}