61 lines
1.9 KiB
Java
61 lines
1.9 KiB
Java
package ru.ulstu.activity.timeline.service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import ru.ulstu.activity.timeline.model.EventDto;
|
|
import ru.ulstu.activity.timeline.model.Timeline;
|
|
import ru.ulstu.activity.timeline.model.TimelineDto;
|
|
import ru.ulstu.activity.timeline.repository.TimelineRepository;
|
|
|
|
import java.util.List;
|
|
|
|
import static ru.ulstu.core.util.StreamApiUtils.convert;
|
|
|
|
@Service
|
|
public class TimelineService {
|
|
|
|
private final TimelineRepository timelineRepository;
|
|
private final EventService eventService;
|
|
|
|
public TimelineService(TimelineRepository timelineRepository,
|
|
EventService eventService) {
|
|
this.timelineRepository = timelineRepository;
|
|
this.eventService = eventService;
|
|
}
|
|
|
|
public List<TimelineDto> findAllDto() {
|
|
return convert(timelineRepository.findAll(), TimelineDto::new);
|
|
}
|
|
|
|
public List<Timeline> findAll() {
|
|
return timelineRepository.findAll();
|
|
}
|
|
|
|
@Transactional
|
|
public int create(TimelineDto timelineDto) {
|
|
return timelineRepository.save(copyFromDto(new Timeline(), timelineDto)).getId();
|
|
}
|
|
|
|
@Transactional
|
|
public Timeline save(Timeline timeline) {
|
|
return timelineRepository.save(timeline);
|
|
}
|
|
|
|
private Timeline copyFromDto(Timeline timeline, TimelineDto timelineDto) {
|
|
timeline.setEvents(eventService.findByIds(convert(timelineDto.getEvents(), EventDto::getId)));
|
|
return timeline;
|
|
}
|
|
|
|
@Transactional
|
|
public Integer update(TimelineDto timelineDto) {
|
|
Timeline timeline = timelineRepository.getOne(timelineDto.getId());
|
|
return timelineRepository.save(copyFromDto(timeline, timelineDto)).getId();
|
|
}
|
|
|
|
@Transactional
|
|
public void delete(Integer timelineId) {
|
|
Timeline timeline = timelineRepository.getOne(timelineId);
|
|
timelineRepository.delete(timeline);
|
|
}
|
|
}
|