diff --git a/RoomsService/src/main/java/fr/insa/arm/RoomsService/controller/RoomsServiceController.java b/RoomsService/src/main/java/fr/insa/arm/RoomsService/controller/RoomsServiceController.java index ac23211..e041c31 100644 --- a/RoomsService/src/main/java/fr/insa/arm/RoomsService/controller/RoomsServiceController.java +++ b/RoomsService/src/main/java/fr/insa/arm/RoomsService/controller/RoomsServiceController.java @@ -52,4 +52,19 @@ public class RoomsServiceController { return rooms.getIdsDevice(idRoom, type); } + @GetMapping("/{id}/persons") + public Integer getPersons(@PathVariable("id") int id) { + return rooms.getPersons(id); + } + + @PostMapping("/{id}/persons") + public Integer addPersons(@PathVariable("id") int idRoom, @RequestBody Integer nbPersons) { + return rooms.addPersons(idRoom, nbPersons); + } + + @DeleteMapping("/{id}/persons") + public Integer removePersons(@PathVariable("id") int idRoom, @RequestBody Integer nbPersons) { + return rooms.removePersons(idRoom, nbPersons); + } + } \ No newline at end of file diff --git a/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/INSA.java b/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/INSA.java index b9d732e..049f08d 100644 --- a/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/INSA.java +++ b/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/INSA.java @@ -49,4 +49,28 @@ public class INSA { public ArrayList getIdsDevice(int idRoom, String type) { return rooms.get(idRoom).getIdsDevice(type); } + + public Integer getPersons(int idRoom) { + Room room = rooms.get(idRoom); + if (room == null) return null; + else return room.countPeople; + } + + public Integer addPersons(int idRoom, int nbPersons) { + Room room = rooms.get(idRoom); + if (room == null) return null; + else { + room.countPeople += nbPersons; + return room.countPeople; + } + } + + public Integer removePersons(int idRoom, int nbPersons) { + Room room = rooms.get(idRoom); + if (room == null) return null; + else { + room.countPeople = Math.max(room.countPeople-nbPersons, 0); // Prevent having -1 person in a room + return room.countPeople; + } + } } diff --git a/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/Room.java b/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/Room.java index 5409086..97f29be 100644 --- a/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/Room.java +++ b/RoomsService/src/main/java/fr/insa/arm/RoomsService/model/Room.java @@ -18,6 +18,7 @@ public class Room { private final ArrayList heatingActuator; private final ArrayList climActuator; private final ArrayList lightActuator; + public Integer countPeople = 0; public Room(String name) { this.id = Room.compteur; @@ -139,11 +140,9 @@ public class Room { return climActuator; case "LIGHT_A": return lightActuator; - default: return null; } } - }