/
podkmax
/
spring-test
Обзор
Документация
Войти
/
podkmax
/
spring-test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/com/example/springtests/service/UserService.java
65 строк
2 KB
Maksim.Podkorytov
sb test example
04 май 2026, 15:40
04 май 2026, 15:40
8288ba1
Код
Авторство
О чём код?
package com.example.springtests.service; import com.example.springtests.common.UserNameNormalizer; import com.example.springtests.common.UserNotFoundException; import com.example.springtests.domain.User; import com.example.springtests.dto.CreateUserRequest; import com.example.springtests.dto.UpdateUserRequest; import com.example.springtests.dto.UserResponse; import com.example.springtests.mapper.UserMapper; import com.example.springtests.repository.UserRepository; import java.time.Instant; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; private final UserMapper userMapper; private final UserNameNormalizer userNameNormalizer; @Transactional public UserResponse create(CreateUserRequest request) { Instant now = Instant.now(); User user = User.builder() .name(userNameNormalizer.normalize(request.name())) .email(request.email()) .createdAt(now) .updatedAt(now) .build(); return userMapper.toResponse(userRepository.save(user)); } @Transactional(readOnly = true) public UserResponse getById(Long id) { return userMapper.toResponse(findUserById(id)); } @Transactional(readOnly = true) public List<UserResponse> getAll() { return userRepository.findAll().stream().map(userMapper::toResponse).toList(); } @Transactional public UserResponse update(Long id, UpdateUserRequest request) { User user = findUserById(id); user.setName(userNameNormalizer.normalize(request.name())); user.setEmail(request.email()); user.setUpdatedAt(Instant.now()); return userMapper.toResponse(userRepository.save(user)); } @Transactional public void delete(Long id) { User user = findUserById(id); userRepository.delete(user); } private User findUserById(Long id) { return userRepository.findById(id).orElseThrow(() -> new UserNotFoundException(id)); } }