package de.ph87.data.series.graph; import de.ph87.data.series.Aligned; import de.ph87.data.series.Alignment; import de.ph87.data.series.SeriesDto; import de.ph87.data.series.SeriesService; import de.ph87.data.series.meter.MeterService; import de.ph87.data.series.varying.VaryingService; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class GraphService { private final SeriesService seriesService; private final VaryingService varyingService; private final MeterService meterService; @NonNull public Graph getGraph(final long seriesId, @NonNull final Alignment innerAlignment, @NonNull final Aligned begin, @NonNull final Aligned end, final int width, final int height, final int border) { final SeriesDto series = seriesService.getDtoById(seriesId); final List entries = switch (series.getType()) { case METER -> meterService.getPoints(series, innerAlignment, begin, end); case VARYING -> varyingService.getPoints(series, innerAlignment, begin, end); }; return new Graph(series, entries, innerAlignment, begin, end, width, height, border); } }