Files
IP-test/src/main/java/ru/ip/example/service/impl/SubscribeServiceImpl.java
2025-05-18 10:12:33 +04:00

65 lines
2.1 KiB
Java

package ru.ip.example.service.impl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import ru.ip.example.domain.SubscribeDto;
import ru.ip.example.domain.entity.SubscribeEntity;
import ru.ip.example.mapper.SubscribeMapper;
import ru.ip.example.repository.SubscribeRepository;
import ru.ip.example.service.SubscribeService;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
public class SubscribeServiceImpl implements SubscribeService {
private final SubscribeRepository subscribeRepository;
private final SubscribeMapper subscribeMapper;
@Transactional
@Override
public SubscribeDto saveSubscribe(SubscribeDto dto) {
SubscribeEntity entity = subscribeMapper.toEntity(dto);
SubscribeEntity savedSubscribe = subscribeRepository.save(entity);
return subscribeMapper.toDto(savedSubscribe);
}
@Transactional
@Override
public SubscribeDto updateSubscribe(Integer id, SubscribeDto dto) {
SubscribeEntity subscribeEntity = subscribeMapper.toEntity(dto);
subscribeEntity.setId(id);
SubscribeEntity updatedEntity = subscribeRepository.save(subscribeEntity);
return subscribeMapper.toDto(updatedEntity);
}
@Transactional(readOnly = true)
@Override
public List<SubscribeDto> findAllSubscribes() {
Iterable<SubscribeEntity> subscribeEntities = subscribeRepository.findAll();
List<SubscribeDto> subscribes = new ArrayList<>();
for (SubscribeEntity entity : subscribeEntities) {
SubscribeDto dto = subscribeMapper.toDto(entity);
subscribes.add(dto);
}
return subscribes;
}
@Transactional(readOnly = true)
@Override
public SubscribeDto findSubscribeById(Integer id) {
SubscribeEntity subscribe = subscribeRepository.findById(id).orElseThrow();
return subscribeMapper.toDto(subscribe);
}
@Transactional
@Override
public void deleteById(Integer id) {
subscribeRepository.deleteById(id);
}
}