diff --git a/src/main/java/leonardo/labutilities/qualitylabpro/controllers/analytics/AnalyticsHelperController.java b/src/main/java/leonardo/labutilities/qualitylabpro/controllers/analytics/AnalyticsHelperController.java index 2b13567..68bb366 100644 --- a/src/main/java/leonardo/labutilities/qualitylabpro/controllers/analytics/AnalyticsHelperController.java +++ b/src/main/java/leonardo/labutilities/qualitylabpro/controllers/analytics/AnalyticsHelperController.java @@ -1,11 +1,10 @@ package leonardo.labutilities.qualitylabpro.controllers.analytics; -import jakarta.validation.Valid; -import leonardo.labutilities.qualitylabpro.dtos.analytics.AnalyticsDTO; -import leonardo.labutilities.qualitylabpro.dtos.analytics.GroupedMeanAndStdByLevelDTO; -import leonardo.labutilities.qualitylabpro.dtos.analytics.GroupedResultsByLevelDTO; -import leonardo.labutilities.qualitylabpro.dtos.analytics.UpdateAnalyticsMeanDTO; -import leonardo.labutilities.qualitylabpro.services.analytics.AbstractAnalyticHelperService; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import java.time.LocalDateTime; +import java.util.List; +import java.util.stream.Collectors; import org.springdoc.core.annotations.ParameterObject; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -15,16 +14,21 @@ import org.springframework.hateoas.Link; import org.springframework.http.ResponseEntity; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder; - -import java.time.LocalDateTime; -import java.util.List; -import java.util.stream.Collectors; - -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import jakarta.validation.Valid; +import leonardo.labutilities.qualitylabpro.dtos.analytics.AnalyticsDTO; +import leonardo.labutilities.qualitylabpro.dtos.analytics.GroupedMeanAndStdByLevelDTO; +import leonardo.labutilities.qualitylabpro.dtos.analytics.GroupedResultsByLevelDTO; +import leonardo.labutilities.qualitylabpro.dtos.analytics.UpdateAnalyticsMeanDTO; +import leonardo.labutilities.qualitylabpro.services.analytics.AbstractAnalyticHelperService; public class AnalyticsHelperController { private final AbstractAnalyticHelperService analyticHelperService; @@ -35,13 +39,13 @@ public AnalyticsHelperController(AbstractAnalyticHelperService analyticHelperSer @GetMapping("/{id}") public ResponseEntity getAnalyticsById(@PathVariable Long id) { - return ResponseEntity.ok(analyticHelperService.findOneById(id)); + return ResponseEntity.ok(this.analyticHelperService.findOneById(id)); } @DeleteMapping("/{id}") @Transactional public ResponseEntity deleteAnalyticsResultById(@PathVariable Long id) { - analyticHelperService.deleteAnalyticsById(id); + this.analyticHelperService.deleteAnalyticsById(id); return ResponseEntity.noContent().build(); } @@ -49,14 +53,14 @@ public ResponseEntity deleteAnalyticsResultById(@PathVariable Long id) { @Transactional public ResponseEntity> postAnalytics( @Valid @RequestBody List<@Valid AnalyticsDTO> values) { - analyticHelperService.saveNewAnalyticsRecords(values); + this.analyticHelperService.saveNewAnalyticsRecords(values); return ResponseEntity.status(201).build(); } @PatchMapping() public ResponseEntity updateAnalyticsMean( @Valid @RequestBody UpdateAnalyticsMeanDTO updateAnalyticsMeanDTO) { - analyticHelperService.updateAnalyticsMeanByNameAndLevelAndLevelLot( + this.analyticHelperService.updateAnalyticsMeanByNameAndLevelAndLevelLot( updateAnalyticsMeanDTO.name(), updateAnalyticsMeanDTO.level(), updateAnalyticsMeanDTO.levelLot(), updateAnalyticsMeanDTO.mean()); return ResponseEntity.noContent().build(); @@ -67,7 +71,7 @@ public ResponseEntity> getGroupedByLevel( @RequestParam String name, @RequestParam("startDate") LocalDateTime startDate, @RequestParam("endDate") LocalDateTime endDate, @PageableDefault(size = 100) @ParameterObject Pageable pageable) { - List groupedData = analyticHelperService + List groupedData = this.analyticHelperService .findAnalyticsWithGroupedResults(name, startDate, endDate, pageable); return ResponseEntity.ok(groupedData); } @@ -77,7 +81,7 @@ public ResponseEntity> getMeanAndDeviationGrou @RequestParam String name, @RequestParam("startDate") LocalDateTime startDate, @RequestParam("endDate") LocalDateTime endDate, @PageableDefault(size = 100) @ParameterObject Pageable pageable) { - List groupedData = analyticHelperService + List groupedData = this.analyticHelperService .calculateGroupedMeanAndStandardDeviation(name, startDate, endDate, pageable); return ResponseEntity.ok(groupedData); } @@ -85,12 +89,13 @@ public ResponseEntity> getMeanAndDeviationGrou public ResponseEntity>> getAllAnalyticsWithLinks( List names, @PageableDefault(size = 100) @ParameterObject Pageable pageable) { Page resultsList = - analyticHelperService.findAnalyticsPagedByNameIn(names, pageable); + this.analyticHelperService.findAnalyticsPagedByNameIn(names, pageable); var entityModels = resultsList.getContent().stream() - .map(record -> createEntityModel(record, pageable)).collect(Collectors.toList()); + .map(analyticsRecord -> this.createEntityModel(analyticsRecord, pageable)).toList(); - var result = addPaginationLinks(CollectionModel.of(entityModels), resultsList, pageable); + var result = + this.addPaginationLinks(CollectionModel.of(entityModels), resultsList, pageable); return ResponseEntity.ok(result); } @@ -98,7 +103,7 @@ public ResponseEntity>> getAnalyticsBy List names, LocalDateTime startDate, LocalDateTime endDate, @PageableDefault(size = 100) @ParameterObject Pageable pageable) { - Page analyticsRecordPaged = analyticHelperService + Page analyticsRecordPaged = this.analyticHelperService .findAnalyticsByNameInAndDateBetweenWithLinks(names, startDate, endDate, pageable); if (analyticsRecordPaged == null) { @@ -106,19 +111,21 @@ public ResponseEntity>> getAnalyticsBy } var entityModels = analyticsRecordPaged.getContent().stream() - .map(record -> createEntityModel(record, pageable)).collect(Collectors.toList()); + .map(record -> this.createEntityModel(record, pageable)) + .collect(Collectors.toList()); var collectionModel = CollectionModel.of(entityModels); - var result = addPaginationLinks(collectionModel, analyticsRecordPaged, pageable); + var result = this.addPaginationLinks(collectionModel, analyticsRecordPaged, pageable); return ResponseEntity.ok(result); } - EntityModel createEntityModel(AnalyticsDTO record, Pageable pageable) { - return EntityModel.of(record, Link.of(ServletUriComponentsBuilder.fromCurrentContextPath() - .path("/backend-api") - .path(linkTo(methodOn(getClass()).getAnalyticsById(record.id())).toUri().getPath()) - .toUriString()).withSelfRel()); + EntityModel createEntityModel(AnalyticsDTO analyticsRecord, Pageable pageable) { + return EntityModel.of(analyticsRecord, + Link.of(ServletUriComponentsBuilder.fromCurrentContextPath().path("/backend").path( + linkTo(methodOn(this.getClass()).getAnalyticsById(analyticsRecord.id())) + .toUri().getPath()) + .toUriString()).withSelfRel()); } private CollectionModel> addPaginationLinks(