From 3bbc4bcff0e44c82370ae13076ea30ca8a77a878 Mon Sep 17 00:00:00 2001 From: tommi27 Date: Mon, 2 Mar 2020 11:02:30 +0100 Subject: [PATCH 1/4] updated buttondimmer controller with dto --- .../controller/ButtonDimmerController.java | 16 ++++++++++------ .../smarthut/dto/ButtonDimmerSaveRequest.java | 18 ++++++++++++++++++ .../smarthut/models/ButtonDimmer.java | 8 ++++++++ .../sanmarinoes/smarthut/models/Sensor.java | 12 ++++++++++++ 4 files changed, 48 insertions(+), 6 deletions(-) create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index 7c2d0b7..39b6d39 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -1,9 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.ButtonDimmerSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmerRepository; import java.util.Optional; -import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.DeleteMapping; @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -32,13 +31,18 @@ public class ButtonDimmerController { } @PostMapping - public ButtonDimmer save(@Valid @RequestBody ButtonDimmer bd) { - return buttonDimmerService.save(bd); + public ButtonDimmer create(final ButtonDimmerSaveRequest bd) { + + ButtonDimmer toSave = new ButtonDimmer(); + + toSave.setLights(bd.getLights()); + + return buttonDimmerService.save(toSave); } @PutMapping - public ButtonDimmer update(@Valid @RequestBody ButtonDimmer bd) { - return buttonDimmerService.save(bd); + public ButtonDimmer update(ButtonDimmerSaveRequest bd) { + return this.create(bd); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java new file mode 100644 index 0000000..f611090 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java @@ -0,0 +1,18 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; +import java.util.HashSet; +import java.util.Set; +import javax.persistence.Lob; + +public class ButtonDimmerSaveRequest { + @Lob private Set lights = new HashSet(); + + public Set getLights() { + return this.lights; + } + + public void setLights(Set newLights) { + this.lights = newLights; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java index 23a69f8..6f6def8 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java @@ -54,4 +54,12 @@ public class ButtonDimmer extends Dimmer { public void clearSet() { lights.clear(); } + + public Set getLights() { + return this.lights; + } + + public void setLights(Set newLights) { + this.lights = newLights; + } } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Sensor.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Sensor.java index e3fbae0..e352a52 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Sensor.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Sensor.java @@ -26,6 +26,10 @@ public class Sensor extends InputDevice { LIGHT } + /** The value of this sensor according to its sensor type */ + @Column(nullable = false) + private int value; + /** The type of this sensor */ @Column(nullable = false) @NotNull @@ -40,6 +44,14 @@ public class Sensor extends InputDevice { this.sensor = sensor; } + public int getValue() { + return this.value; + } + + public void setValue(int newValue) { + this.value = newValue; + } + public Sensor() { super("sensor"); } From 624c857734c40b73cae0681fc538ec7aa2fabdde Mon Sep 17 00:00:00 2001 From: tommi27 Date: Mon, 2 Mar 2020 12:11:50 +0100 Subject: [PATCH 2/4] updated controllers --- .../controller/ButtonDimmerController.java | 8 +++--- .../controller/DimmableLightController.java | 14 ++++++----- .../controller/KnobDimmerController.java | 14 ++++++----- .../dto/DimmableLightSaveRequest.java | 25 +++++++++++++++++++ .../smarthut/dto/KnobDimmerSaveRequest.java | 18 +++++++++++++ .../smarthut/models/KnobDimmer.java | 8 ++++++ 6 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index 39b6d39..caeac2a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -32,12 +32,10 @@ public class ButtonDimmerController { @PostMapping public ButtonDimmer create(final ButtonDimmerSaveRequest bd) { + ButtonDimmer newBD = new ButtonDimmer(); + newBD.setLights(bd.getLights()); - ButtonDimmer toSave = new ButtonDimmer(); - - toSave.setLights(bd.getLights()); - - return buttonDimmerService.save(toSave); + return buttonDimmerService.save(newBD); } @PutMapping diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java index 5391e43..597a899 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java @@ -1,9 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.DimmableLightSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLightRepository; import java.util.Optional; -import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.DeleteMapping; @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,13 +32,16 @@ public class DimmableLightController { } @PostMapping - public DimmableLight save(@Valid @RequestBody DimmableLight dl) { - return dimmableLightService.save(dl); + public DimmableLight create(DimmableLightSaveRequest dl) { + DimmableLight newDL = new DimmableLight(); + newDL.setIntensity(dl.getIntensity()); + + return dimmableLightService.save(newDL); } @PutMapping - public DimmableLight update(@Valid @RequestBody DimmableLight dl) { - return dimmableLightService.save(dl); + public DimmableLight update(DimmableLightSaveRequest dl) { + return this.create(dl); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java index 3dd53d7..a42af17 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java @@ -1,9 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.KnobDimmerSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmerRepository; import java.util.Optional; -import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.DeleteMapping; @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,13 +32,16 @@ public class KnobDimmerController { } @PostMapping - public KnobDimmer save(@Valid @RequestBody KnobDimmer kd) { - return knobDimmerService.save(kd); + public KnobDimmer create(KnobDimmerSaveRequest kd) { + KnobDimmer newKD = new KnobDimmer(); + newKD.setLights(kd.getLights()); + + return knobDimmerService.save(newKD); } @PutMapping - public KnobDimmer update(@Valid @RequestBody KnobDimmer kd) { - return knobDimmerService.save(kd); + public KnobDimmer update(KnobDimmerSaveRequest kd) { + return this.create(kd); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java new file mode 100644 index 0000000..1d3a8e2 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java @@ -0,0 +1,25 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +public class DimmableLightSaveRequest { + + /** The light intensity value. Goes from 0 (off) to 100 (on) */ + @NotNull + @Min(1) + @Max(100) + private Integer intensity = 0; + + public Integer getIntensity() { + return intensity; + } + + public void setIntensity(Integer intensity) throws IllegalArgumentException { + if (intensity < 0 || intensity > 100) { + throw new IllegalArgumentException("The intensity level can't go below 0 or above 100"); + } + this.intensity = intensity; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java new file mode 100644 index 0000000..c7d5193 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java @@ -0,0 +1,18 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; +import java.util.HashSet; +import java.util.Set; +import javax.persistence.Lob; + +public class KnobDimmerSaveRequest { + @Lob private Set lights = new HashSet(); + + public void setLights(Set lights) { + this.lights = lights; + } + + public Set getLights() { + return lights; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java index 5c5c603..cbba6a2 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/KnobDimmer.java @@ -61,4 +61,12 @@ public class KnobDimmer extends Dimmer { public void clearSet() { lights.clear(); } + + public void setLights(Set lights) { + this.lights = lights; + } + + public Set getLights() { + return lights; + } } From eb6e935892672792238bb5a5096216783d8fb9ab Mon Sep 17 00:00:00 2001 From: tommi27 Date: Mon, 2 Mar 2020 14:44:01 +0100 Subject: [PATCH 3/4] all controllers updated with DTOs (needs review) --- .../controller/ButtonDimmerController.java | 4 + .../controller/DimmableLightController.java | 4 + .../controller/KnobDimmerController.java | 4 + .../controller/MotionSensorController.java | 18 ++-- .../controller/RegularLightController.java | 12 ++- .../smarthut/controller/SensorController.java | 18 +++- .../controller/SmartPlugController.java | 12 ++- .../smarthut/controller/SwitchController.java | 12 ++- .../smarthut/dto/ButtonDimmerSaveRequest.java | 51 +++++++++- .../dto/DimmableLightSaveRequest.java | 48 +++++++++ .../smarthut/dto/KnobDimmerSaveRequest.java | 49 ++++++++++ .../smarthut/dto/MotionSensorSaveRequest.java | 63 ++++++++++++ .../smarthut/dto/RegularLightSaveRequest.java | 64 ++++++++++++ .../smarthut/dto/SensorSaveRequest.java | 97 +++++++++++++++++++ .../smarthut/dto/SmartPlugSaveRequest.java | 64 ++++++++++++ .../smarthut/dto/SwitchSaveRequest.java | 64 ++++++++++++ .../smarthut/models/MotionSensor.java | 13 +++ .../sanmarinoes/smarthut/models/Switch.java | 6 +- 18 files changed, 582 insertions(+), 21 deletions(-) create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java create mode 100644 src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index caeac2a..404d5ac 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -34,6 +34,10 @@ public class ButtonDimmerController { public ButtonDimmer create(final ButtonDimmerSaveRequest bd) { ButtonDimmer newBD = new ButtonDimmer(); newBD.setLights(bd.getLights()); + newBD.setId(bd.getId()); + newBD.setName(bd.getName()); + newBD.setRoom(bd.getRoom()); + newBD.setRoomId(bd.getRoomId()); return buttonDimmerService.save(newBD); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java index 597a899..a7f6d1a 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java @@ -35,6 +35,10 @@ public class DimmableLightController { public DimmableLight create(DimmableLightSaveRequest dl) { DimmableLight newDL = new DimmableLight(); newDL.setIntensity(dl.getIntensity()); + newDL.setId(dl.getId()); + newDL.setName(dl.getName()); + newDL.setRoom(dl.getRoom()); + newDL.setRoomId(dl.getRoomId()); return dimmableLightService.save(newDL); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java index a42af17..a317826 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java @@ -35,6 +35,10 @@ public class KnobDimmerController { public KnobDimmer create(KnobDimmerSaveRequest kd) { KnobDimmer newKD = new KnobDimmer(); newKD.setLights(kd.getLights()); + newKD.setId(kd.getId()); + newKD.setName(kd.getName()); + newKD.setRoom(kd.getRoom()); + newKD.setRoomId(kd.getRoomId()); return knobDimmerService.save(newKD); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java index 15c964f..2aa37de 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java @@ -1,9 +1,9 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.MotionSensorSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensor; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensorRepository; import java.util.Optional; -import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.DeleteMapping; @@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -33,13 +32,20 @@ public class MotionSensorController { } @PostMapping - public MotionSensor save(@Valid @RequestBody MotionSensor ms) { - return motionSensorService.save(ms); + public MotionSensor create(MotionSensorSaveRequest ms) { + MotionSensor newMS = new MotionSensor(); + newMS.setDetected(ms.isDetected()); + newMS.setId(ms.getId()); + newMS.setName(ms.getName()); + newMS.setRoom(ms.getRoom()); + newMS.setRoomId(ms.getRoomId()); + + return motionSensorService.save(newMS); } @PutMapping - public MotionSensor update(@Valid @RequestBody MotionSensor ms) { - return motionSensorService.save(ms); + public MotionSensor update(MotionSensorSaveRequest ms) { + return this.create(ms); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java index 2ec1453..e2a2f49 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java @@ -1,5 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.RegularLightSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.RegularLight; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.RegularLightRepository; import java.util.Optional; @@ -33,8 +34,15 @@ public class RegularLightController { } @PostMapping - public RegularLight save(@Valid @RequestBody RegularLight rl) { - return regularLightService.save(rl); + public RegularLight save(RegularLightSaveRequest rl) { + RegularLight newRL = new RegularLight(); + newRL.setId(rl.getId()); + newRL.setName(rl.getName()); + newRL.setRoom(rl.getRoom()); + newRL.setRoomId(rl.getRoomId()); + newRL.setOn(rl.isOn()); + + return regularLightService.save(newRL); } @PutMapping diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java index 957328e..fab5d85 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java @@ -1,8 +1,8 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.SensorSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; -import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @@ -25,13 +25,21 @@ public class SensorController { } @PostMapping - public Sensor save(@Valid @RequestBody Sensor s) { - return sensorRepository.save(s); + public Sensor create(SensorSaveRequest s) { + Sensor newSensor = new Sensor(); + newSensor.setSensor(s.getSensor()); + newSensor.setValue(s.getValue()); + newSensor.setId(s.getId()); + newSensor.setName(s.getName()); + newSensor.setRoom(s.getRoom()); + newSensor.setRoomId(s.getRoomId()); + + return sensorRepository.save(newSensor); } @PutMapping - public Sensor update(@Valid @RequestBody Sensor s) { - return sensorRepository.save(s); + public Sensor update(SensorSaveRequest s) { + return this.create(s); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java index a0aee71..0761532 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java @@ -1,5 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.SmartPlugSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; import javax.validation.Valid; @@ -25,8 +26,15 @@ public class SmartPlugController { } @PostMapping - public SmartPlug save(@Valid @RequestBody SmartPlug sp) { - return smartPlugRepository.save(sp); + public SmartPlug create(SmartPlugSaveRequest sp) { + SmartPlug newSP = new SmartPlug(); + newSP.setOn(sp.isOn()); + newSP.setId(sp.getId()); + newSP.setName(sp.getName()); + newSP.setRoom(sp.getRoom()); + newSP.setRoomId(sp.getRoomId()); + + return smartPlugRepository.save(newSP); } @PutMapping diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java index 7eb83a0..50c2b50 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java @@ -1,5 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; +import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.SwitchSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; import javax.validation.Valid; @@ -25,8 +26,15 @@ public class SwitchController { } @PostMapping - public Switch save(@Valid @RequestBody Switch s) { - return switchRepository.save(s); + public Switch save(SwitchSaveRequest s) { + Switch newSwitch = new Switch(); + newSwitch.setId(s.getId()); + newSwitch.setName(s.getName()); + newSwitch.setRoom(s.getRoom()); + newSwitch.setRoomId(s.getRoomId()); + newSwitch.setOn(s.isOn()); + + return switchRepository.save(newSwitch); } @PutMapping diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java index f611090..ce49970 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/ButtonDimmerSaveRequest.java @@ -1,13 +1,30 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import java.util.HashSet; import java.util.Set; -import javax.persistence.Lob; +import javax.persistence.*; +import javax.validation.constraints.NotNull; public class ButtonDimmerSaveRequest { @Lob private Set lights = new HashSet(); + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + public Set getLights() { return this.lights; } @@ -15,4 +32,36 @@ public class ButtonDimmerSaveRequest { public void setLights(Set newLights) { this.lights = newLights; } + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java index 1d3a8e2..43b5a97 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/DimmableLightSaveRequest.java @@ -1,5 +1,6 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import javax.validation.constraints.Max; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; @@ -12,6 +13,53 @@ public class DimmableLightSaveRequest { @Max(100) private Integer intensity = 0; + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + public Integer getIntensity() { return intensity; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java index c7d5193..530ab90 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/KnobDimmerSaveRequest.java @@ -1,13 +1,62 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; import java.util.HashSet; import java.util.Set; import javax.persistence.Lob; +import javax.validation.constraints.NotNull; public class KnobDimmerSaveRequest { @Lob private Set lights = new HashSet(); + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + public void setLights(Set lights) { this.lights = lights; } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java new file mode 100644 index 0000000..9fa3c7e --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/MotionSensorSaveRequest.java @@ -0,0 +1,63 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; +import javax.validation.constraints.NotNull; + +public class MotionSensorSaveRequest { + private boolean detected; + + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + + public boolean isDetected() { + return detected; + } + + public void setDetected(boolean detected) { + this.detected = detected; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java new file mode 100644 index 0000000..fb7fc78 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/RegularLightSaveRequest.java @@ -0,0 +1,64 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; +import javax.validation.constraints.NotNull; + +public class RegularLightSaveRequest { + /** The state of this switch */ + private boolean on; + + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + + public boolean isOn() { + return on; + } + + public void setOn(boolean on) { + this.on = on; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java new file mode 100644 index 0000000..cbc29b0 --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SensorSaveRequest.java @@ -0,0 +1,97 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Sensor; +import com.google.gson.annotations.SerializedName; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.validation.constraints.NotNull; + +public class SensorSaveRequest { + + /** Type of sensor, i.e. of the thing the sensor measures. */ + public enum SensorType { + /** A sensor that measures temperature in degrees celsius */ + @SerializedName("TEMPERATURE") + TEMPERATURE, + + /** A sensor that measures relative humidity in percentage points */ + @SerializedName("HUMIDITY") + HUMIDITY, + + /** A sensor that measures light in degrees */ + @SerializedName("LIGHT") + LIGHT + } + + /** The value of this sensor according to its sensor type */ + private int value; + + /** The type of this sensor */ + @NotNull + @Enumerated(value = EnumType.STRING) + private Sensor.SensorType sensor; + + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + + public Sensor.SensorType getSensor() { + return sensor; + } + + public void setSensor(Sensor.SensorType sensor) { + this.sensor = sensor; + } + + public int getValue() { + return this.value; + } + + public void setValue(int newValue) { + this.value = newValue; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java new file mode 100644 index 0000000..3dbb72b --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SmartPlugSaveRequest.java @@ -0,0 +1,64 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; +import javax.validation.constraints.NotNull; + +public class SmartPlugSaveRequest { + /** Whether the smart plug is on */ + @NotNull private boolean on; + + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + + public boolean isOn() { + return on; + } + + public void setOn(boolean on) { + this.on = on; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java new file mode 100644 index 0000000..ff365fc --- /dev/null +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/dto/SwitchSaveRequest.java @@ -0,0 +1,64 @@ +package ch.usi.inf.sa4.sanmarinoes.smarthut.dto; + +import ch.usi.inf.sa4.sanmarinoes.smarthut.models.Room; +import javax.validation.constraints.NotNull; + +public class SwitchSaveRequest { + /** The state of this switch */ + private boolean on; + + /** Device identifier */ + private long id; + + /** The room this device belongs in */ + private Room room; + + /** + * The room this device belongs in, as a foreign key id. To use when updating and inserting from + * a REST call. + */ + @NotNull private Long roomId; + + /** The name of the device as assigned by the user (e.g. 'Master bedroom light') */ + @NotNull private String name; + + public void setId(long id) { + this.id = id; + } + + public void setRoom(Room room) { + this.room = room; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public void setName(String name) { + this.name = name; + } + + public long getId() { + return id; + } + + public Room getRoom() { + return room; + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } + + public boolean isOn() { + return on; + } + + public void setOn(boolean on) { + this.on = on; + } +} diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensor.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensor.java index d1c47b3..50d2206 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensor.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/MotionSensor.java @@ -1,10 +1,23 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; +import javax.persistence.Column; import javax.persistence.Entity; /** Represents a motion sensor device */ @Entity public class MotionSensor extends InputDevice { + + @Column(nullable = false) + private boolean detected; + + public boolean isDetected() { + return detected; + } + + public void setDetected(boolean detected) { + this.detected = detected; + } + public MotionSensor() { super("motion-sensor"); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java index 6f0eb99..2576d38 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/Switch.java @@ -3,7 +3,7 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.models; import javax.persistence.Column; import javax.persistence.Entity; -/** A switch input device TODO: define switch behaviour (push button vs on/off state) */ +/** A switch input device */ @Entity public class Switch extends InputDevice { @@ -20,7 +20,7 @@ public class Switch extends InputDevice { * * @param state The state to be set */ - void setState(boolean state) { + public void setOn(boolean state) { on = state; } @@ -29,7 +29,7 @@ public class Switch extends InputDevice { * * @return This Switch on state */ - boolean getState() { + public boolean isOn() { return on; } } From 572134bba230c853845b093120fac16db5dedc42 Mon Sep 17 00:00:00 2001 From: tommi27 Date: Mon, 2 Mar 2020 16:15:52 +0100 Subject: [PATCH 4/4] fixed request annotations --- .../smarthut/controller/ButtonDimmerController.java | 13 ++++--------- .../controller/DimmableLightController.java | 13 ++++--------- .../smarthut/controller/KnobDimmerController.java | 13 ++++--------- .../smarthut/controller/MotionSensorController.java | 13 ++++--------- .../smarthut/controller/RegularLightController.java | 6 +++--- .../smarthut/controller/SensorController.java | 5 +++-- .../smarthut/controller/SmartPlugController.java | 6 +++--- .../smarthut/controller/SwitchController.java | 6 +++--- .../sanmarinoes/smarthut/models/ButtonDimmer.java | 5 +++++ 9 files changed, 33 insertions(+), 47 deletions(-) diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java index 404d5ac..6ea2556 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/ButtonDimmerController.java @@ -4,15 +4,10 @@ import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.ButtonDimmerSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.ButtonDimmerRepository; import java.util.Optional; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration @@ -31,7 +26,7 @@ public class ButtonDimmerController { } @PostMapping - public ButtonDimmer create(final ButtonDimmerSaveRequest bd) { + public ButtonDimmer create(@Valid @RequestBody final ButtonDimmerSaveRequest bd) { ButtonDimmer newBD = new ButtonDimmer(); newBD.setLights(bd.getLights()); newBD.setId(bd.getId()); @@ -43,7 +38,7 @@ public class ButtonDimmerController { } @PutMapping - public ButtonDimmer update(ButtonDimmerSaveRequest bd) { + public ButtonDimmer update(@Valid @RequestBody ButtonDimmerSaveRequest bd) { return this.create(bd); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java index a7f6d1a..f7e02d2 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/DimmableLightController.java @@ -4,15 +4,10 @@ import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.DimmableLightSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLight; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.DimmableLightRepository; import java.util.Optional; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration @@ -32,7 +27,7 @@ public class DimmableLightController { } @PostMapping - public DimmableLight create(DimmableLightSaveRequest dl) { + public DimmableLight create(@Valid @RequestBody DimmableLightSaveRequest dl) { DimmableLight newDL = new DimmableLight(); newDL.setIntensity(dl.getIntensity()); newDL.setId(dl.getId()); @@ -44,7 +39,7 @@ public class DimmableLightController { } @PutMapping - public DimmableLight update(DimmableLightSaveRequest dl) { + public DimmableLight update(@Valid @RequestBody DimmableLightSaveRequest dl) { return this.create(dl); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java index a317826..6c93178 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/KnobDimmerController.java @@ -4,15 +4,10 @@ import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.KnobDimmerSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmer; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.KnobDimmerRepository; import java.util.Optional; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration @@ -32,7 +27,7 @@ public class KnobDimmerController { } @PostMapping - public KnobDimmer create(KnobDimmerSaveRequest kd) { + public KnobDimmer create(@Valid @RequestBody KnobDimmerSaveRequest kd) { KnobDimmer newKD = new KnobDimmer(); newKD.setLights(kd.getLights()); newKD.setId(kd.getId()); @@ -44,7 +39,7 @@ public class KnobDimmerController { } @PutMapping - public KnobDimmer update(KnobDimmerSaveRequest kd) { + public KnobDimmer update(@Valid @RequestBody KnobDimmerSaveRequest kd) { return this.create(kd); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java index 2aa37de..8decc61 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/MotionSensorController.java @@ -4,15 +4,10 @@ import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.MotionSensorSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensor; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.MotionSensorRepository; import java.util.Optional; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @EnableAutoConfiguration @@ -32,7 +27,7 @@ public class MotionSensorController { } @PostMapping - public MotionSensor create(MotionSensorSaveRequest ms) { + public MotionSensor create(@Valid @RequestBody MotionSensorSaveRequest ms) { MotionSensor newMS = new MotionSensor(); newMS.setDetected(ms.isDetected()); newMS.setId(ms.getId()); @@ -44,7 +39,7 @@ public class MotionSensorController { } @PutMapping - public MotionSensor update(MotionSensorSaveRequest ms) { + public MotionSensor update(@Valid @RequestBody MotionSensorSaveRequest ms) { return this.create(ms); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java index e2a2f49..dd53ceb 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/RegularLightController.java @@ -34,7 +34,7 @@ public class RegularLightController { } @PostMapping - public RegularLight save(RegularLightSaveRequest rl) { + public RegularLight create(@Valid @RequestBody RegularLightSaveRequest rl) { RegularLight newRL = new RegularLight(); newRL.setId(rl.getId()); newRL.setName(rl.getName()); @@ -46,8 +46,8 @@ public class RegularLightController { } @PutMapping - public RegularLight update(@Valid @RequestBody RegularLight rl) { - return regularLightService.save(rl); + public RegularLight update(@Valid @RequestBody RegularLightSaveRequest rl) { + return this.create(rl); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java index fab5d85..788f32f 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SensorController.java @@ -3,6 +3,7 @@ package ch.usi.inf.sa4.sanmarinoes.smarthut.controller; import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.SensorSaveRequest; import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*; import java.util.*; +import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.*; import org.springframework.web.bind.annotation.*; @@ -25,7 +26,7 @@ public class SensorController { } @PostMapping - public Sensor create(SensorSaveRequest s) { + public Sensor create(@Valid @RequestBody SensorSaveRequest s) { Sensor newSensor = new Sensor(); newSensor.setSensor(s.getSensor()); newSensor.setValue(s.getValue()); @@ -38,7 +39,7 @@ public class SensorController { } @PutMapping - public Sensor update(SensorSaveRequest s) { + public Sensor update(@Valid @RequestBody SensorSaveRequest s) { return this.create(s); } diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java index 0761532..3cf2cc0 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SmartPlugController.java @@ -26,7 +26,7 @@ public class SmartPlugController { } @PostMapping - public SmartPlug create(SmartPlugSaveRequest sp) { + public SmartPlug create(@Valid @RequestBody SmartPlugSaveRequest sp) { SmartPlug newSP = new SmartPlug(); newSP.setOn(sp.isOn()); newSP.setId(sp.getId()); @@ -38,8 +38,8 @@ public class SmartPlugController { } @PutMapping - public SmartPlug update(@Valid @RequestBody SmartPlug sp) { - return smartPlugRepository.save(sp); + public SmartPlug update(@Valid @RequestBody SmartPlugSaveRequest sp) { + return this.create(sp); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java index 50c2b50..51f0858 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/controller/SwitchController.java @@ -26,7 +26,7 @@ public class SwitchController { } @PostMapping - public Switch save(SwitchSaveRequest s) { + public Switch create(@Valid @RequestBody SwitchSaveRequest s) { Switch newSwitch = new Switch(); newSwitch.setId(s.getId()); newSwitch.setName(s.getName()); @@ -38,8 +38,8 @@ public class SwitchController { } @PutMapping - public Switch update(@Valid @RequestBody Switch s) { - return switchRepository.save(s); + public Switch update(@Valid @RequestBody SwitchSaveRequest s) { + return this.create(s); } @DeleteMapping("/{id}") diff --git a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java index 6f6def8..b2c907f 100644 --- a/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java +++ b/src/main/java/ch/usi/inf/sa4/sanmarinoes/smarthut/models/ButtonDimmer.java @@ -55,6 +55,11 @@ public class ButtonDimmer extends Dimmer { lights.clear(); } + /** + * Get the lights + * + * @return duh + */ public Set getLights() { return this.lights; }