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