diff --git a/src/main/java/com/eistgeist/flightsystem/rest/UserController.java b/src/main/java/com/eistgeist/flightsystem/rest/UserController.java index 766ac40..fb8114d 100644 --- a/src/main/java/com/eistgeist/flightsystem/rest/UserController.java +++ b/src/main/java/com/eistgeist/flightsystem/rest/UserController.java @@ -1,6 +1,7 @@ package com.eistgeist.flightsystem.rest; import com.eistgeist.flightsystem.model.Journey; +import com.eistgeist.flightsystem.model.POI; import com.eistgeist.flightsystem.model.User; import com.eistgeist.flightsystem.service.UserService; import io.swagger.v3.oas.annotations.Operation; @@ -25,20 +26,31 @@ public ResponseEntity addUser(@RequestBody User user) { if(user == null) return new ResponseEntity<>(HttpStatus.BAD_REQUEST); return new ResponseEntity<>(userService.addUser(user), HttpStatus.CREATED); } - @GetMapping("") @Operation(description = "Get users") public ResponseEntity> getUsers() { return ResponseEntity.ok(userService.getUsers()); } @GetMapping("{username}/journeys") + @Operation(description = "Get journeys of the user") public ResponseEntity> getJourneys(@PathVariable String username) { return ResponseEntity.ok(userService.getJourneys(username)); } - @PostMapping("{username}/addJourney") + @PostMapping("{username}/journeys") + @Operation(description = "Add a journey to the user") public ResponseEntity addJourney(@RequestBody Journey journey, @PathVariable String username) { return ResponseEntity.ok(userService.addJourney(journey, username)); } + @GetMapping("{username}/pois") + @Operation(description = "Get POIs of the user") + public ResponseEntity> getPOIs(@PathVariable String username) { + return ResponseEntity.ok(userService.getPOIs(username)); + } + @PostMapping("{username}/pois") + @Operation(description = "Add a journey to the user") + public ResponseEntity addPOI(@RequestBody POI poi, @PathVariable String username) { + return ResponseEntity.ok(userService.addPOI(poi, username)); + } diff --git a/src/main/java/com/eistgeist/flightsystem/service/UserService.java b/src/main/java/com/eistgeist/flightsystem/service/UserService.java index 34fec1c..9572f56 100644 --- a/src/main/java/com/eistgeist/flightsystem/service/UserService.java +++ b/src/main/java/com/eistgeist/flightsystem/service/UserService.java @@ -2,6 +2,7 @@ import com.eistgeist.flightsystem.exception.FlightNotFoundException; import com.eistgeist.flightsystem.model.Journey; +import com.eistgeist.flightsystem.model.POI; import com.eistgeist.flightsystem.model.User; import com.eistgeist.flightsystem.repository.FlightRepository; import com.eistgeist.flightsystem.repository.UserRepository; @@ -45,4 +46,21 @@ public List getJourneys(String userName) { User user = userRepository.findUserByUserNameIgnoreCase(userName).orElseThrow(() -> new IllegalStateException("User not found")); return user.getJourneys(); } + + public List getPOIs(String userName) { + User user = userRepository.findUserByUserNameIgnoreCase(userName).orElseThrow(() -> new IllegalStateException("User not found")); + return user.getPOIList(); + } + public User addPOI(POI poi, String userName) { + User user = userRepository.findUserByUserNameIgnoreCase(userName).orElseThrow(() -> new IllegalStateException("User not found")); + List pois = user.getPOIList(); + if (pois == null) { + pois = new ArrayList<>(); + } + pois.add(poi); + user.setPOIList(pois); + return userRepository.save(user); + } + + }