SeriesController aggregation clean up
This commit is contained in:
parent
27d827b9d6
commit
0e9b99e7e4
@ -2,20 +2,18 @@ package de.ph87.data.series;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
|
||||
@Data
|
||||
public class AggregationWrapperDto {
|
||||
|
||||
public final Alignment alignment;
|
||||
|
||||
public final ZonedDateTime date;
|
||||
@NonNull
|
||||
public final Aligned date;
|
||||
|
||||
@NonNull
|
||||
public final List<IAggregationDto> aggregations;
|
||||
|
||||
public AggregationWrapperDto(final Alignment alignment, final ZonedDateTime date, final List<IAggregationDto> aggregations) {
|
||||
this.alignment = alignment;
|
||||
public AggregationWrapperDto(@NonNull final Aligned date, @NonNull final List<IAggregationDto> aggregations) {
|
||||
this.date = date;
|
||||
this.aggregations = aggregations;
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package de.ph87.data.series;
|
||||
import de.ph87.data.series.meter.*;
|
||||
import de.ph87.data.series.varying.*;
|
||||
import lombok.*;
|
||||
import org.springframework.format.annotation.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.*;
|
||||
@ -18,14 +19,27 @@ public class SeriesController {
|
||||
private final VaryingService varyingService;
|
||||
|
||||
@NonNull
|
||||
@GetMapping("agg/all/{alignmentName}/{offsetAmount}")
|
||||
@GetMapping("agg/all/{alignmentName}/offset/{offsetAmount}")
|
||||
public AggregationWrapperDto agg(@PathVariable final String alignmentName, @PathVariable final long offsetAmount) {
|
||||
final Alignment alignment = Alignment.valueOf(alignmentName);
|
||||
final ZonedDateTime date = alignment.align(ZonedDateTime.now()).minus(offsetAmount).date;
|
||||
final Aligned date = alignment.align(ZonedDateTime.now()).minus(offsetAmount);
|
||||
return getAggregationWrapperDto(date);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@GetMapping("agg/all/{alignmentName}/zoned/{zonedDateTime}")
|
||||
public AggregationWrapperDto agg(@PathVariable final String alignmentName, @PathVariable @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) final ZonedDateTime zonedDateTime) {
|
||||
final Alignment alignment = Alignment.valueOf(alignmentName);
|
||||
final Aligned date = alignment.align(zonedDateTime);
|
||||
return getAggregationWrapperDto(date);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private AggregationWrapperDto getAggregationWrapperDto(@NonNull final Aligned date) {
|
||||
final List<IAggregationDto> aggregations = new ArrayList<>();
|
||||
aggregations.addAll(meterService.findAllAggregations(alignment, date));
|
||||
aggregations.addAll(varyingService.findAllAggregations(alignment, date));
|
||||
return new AggregationWrapperDto(alignment, date, aggregations);
|
||||
aggregations.addAll(meterService.findAllAggregations(date));
|
||||
aggregations.addAll(varyingService.findAllAggregations(date));
|
||||
return new AggregationWrapperDto(date, aggregations);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,6 @@ import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.*;
|
||||
import org.springframework.transaction.annotation.*;
|
||||
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
import java.util.stream.*;
|
||||
|
||||
@ -89,8 +88,8 @@ public class MeterService {
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public List<MeterAggregationDto> findAllAggregations(@NonNull final Alignment alignment, @NonNull final ZonedDateTime date) {
|
||||
return findRepository(alignment).findAllDeltaSum(date).stream().map(this::toDto).toList();
|
||||
public List<MeterAggregationDto> findAllAggregations(@NonNull final Aligned date) {
|
||||
return findRepository(date.alignment).findAllDeltaSum(date.date).stream().map(this::toDto).toList();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
@ -14,7 +14,6 @@ import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.*;
|
||||
import org.springframework.transaction.annotation.*;
|
||||
|
||||
import java.time.*;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@ -70,8 +69,8 @@ public class VaryingService {
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public List<VaryingAggregationDto> findAllAggregations(@NonNull final Alignment alignment, @NonNull final ZonedDateTime date) {
|
||||
return findRepository(alignment).findAllDeltaSum(date).stream().map(this::toDto).toList();
|
||||
public List<VaryingAggregationDto> findAllAggregations(@NonNull final Aligned date) {
|
||||
return findRepository(date.alignment).findAllDeltaSum(date.date).stream().map(this::toDto).toList();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
||||
Loading…
Reference in New Issue
Block a user