mirror of
https://github.com/ItsDek/sensor-api.git
synced 2026-08-30 10:59:12 +00:00
refactor: extract measurement logic into service layer
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package dev.deklab.sensorapi.controller;
|
||||
|
||||
import dev.deklab.sensorapi.service.MeasurementService;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@@ -14,34 +15,30 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
|
||||
@RestController
|
||||
public class MeasurementController {
|
||||
Measurement m1 = new Measurement(1L, 21.5, 48);
|
||||
Measurement m2 = new Measurement(2L, 25.5, 38);
|
||||
Measurement m3 = new Measurement(3L, 29.5, 58);
|
||||
|
||||
List<Measurement> measurements = List.of(m1, m2, m3);
|
||||
private final MeasurementService measurementService;
|
||||
|
||||
MeasurementController(MeasurementService measurementService) {
|
||||
this.measurementService = measurementService;
|
||||
}
|
||||
|
||||
@GetMapping("/measurements")
|
||||
public List<Measurement> returnAllMeasurements() {
|
||||
return measurements;
|
||||
return measurementService.returnAllMeasurements();
|
||||
}
|
||||
|
||||
@GetMapping("/measurements/{id}")
|
||||
public Measurement returnMeasurementsById(@PathVariable Long id) {
|
||||
for (int i = 0; i < measurements.size(); i++) {
|
||||
if (id.equals(measurements.get(i).id())) {
|
||||
return measurements.get(i);
|
||||
}
|
||||
}
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND);
|
||||
return measurementService.searchById(id)
|
||||
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));
|
||||
}
|
||||
|
||||
@PostMapping("/measurements")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
public Measurement postMeasurement(@RequestBody Measurement measurement) {
|
||||
return measurement;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package dev.deklab.sensorapi.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import dev.deklab.model.Measurement;
|
||||
|
||||
@Service
|
||||
public class MeasurementService {
|
||||
private Measurement m1 = new Measurement(1L, 21.5, 48);
|
||||
private Measurement m2 = new Measurement(2L, 25.5, 38);
|
||||
private Measurement m3 = new Measurement(3L, 29.5, 58);
|
||||
|
||||
private List<Measurement> measurements = List.of(m1, m2, m3);
|
||||
public List<Measurement> returnAllMeasurements(){
|
||||
return measurements;
|
||||
}
|
||||
public Optional<Measurement> searchById(Long id){
|
||||
for (int i = 0; i < measurements.size(); i++) {
|
||||
if (id.equals(measurements.get(i).id())) {
|
||||
return Optional.of(measurements.get(i));
|
||||
}
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user