From 5b6fe52a04b3f148898195ac0620de3367bd06c1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 24 Mar 2019 00:16:01 +0100 Subject: [PATCH] added a isPresent() check and unregistered users are able start a cache now --- .../bugageocaching/controller/Controller.java | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index c524e99..25926d8 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -34,33 +34,57 @@ public class Controller { @RequestMapping("/allCaches") @ResponseBody - public String getAllCaches(){ + public String getAllCaches() { return new Gson().toJson(cacheRepository.findAll()); } @RequestMapping("/startCache") public @ResponseBody - Bearbeitet startCache(@RequestParam String userID, - @RequestParam String cacheID, - @RequestParam String cacheAccesDefinitionID) { + String startCache(@RequestParam(value = "userID", defaultValue = "-1") String userID, + @RequestParam String cacheID, + @RequestParam String cacheAccesDefinitionID) { - Optional userOptional = userRepository.findById(Integer.valueOf(userID)); - User user = userOptional.get(); + if (!userID.equals("-1")) { // ein angemeldeter User startet den Cache - Optional cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID)); - Cache cache = cacheOptional.get(); + Bearbeitet bearbeitet = new Bearbeitet(); - Optional cacheAccesDefinitionOptional = - cacheAccesDefinitionRepository.findById(Integer.valueOf(cacheAccesDefinitionID)); - CacheAccesDefinition cacheAccesDefinition = cacheAccesDefinitionOptional.get(); + Optional userOptional = userRepository.findById(Integer.valueOf(userID)); + if (userOptional.isPresent()) { + User user = userOptional.get(); + bearbeitet.setUser(user); + } else { + return "There is no user with the ID " + userID; + } - Bearbeitet bearbeitet = new Bearbeitet(); - bearbeitet.setUser(user); - bearbeitet.setCache(cache); - bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); + Optional cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID)); + if (cacheOptional.isPresent()) { + Cache cache = cacheOptional.get(); + bearbeitet.setCache(cache); + } else { + return "There is no cache with the ID " + cacheID; + } - bearbeitetRepository.save(bearbeitet); + Optional cacheAccesDefinitionOptional = + cacheAccesDefinitionRepository.findById(Integer.valueOf(cacheAccesDefinitionID)); + if (cacheAccesDefinitionOptional.isPresent()) { + CacheAccesDefinition cacheAccesDefinition = cacheAccesDefinitionOptional.get(); + bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); + } else { + return "There is no cacheAccesDefinition with the ID " + cacheAccesDefinitionID; + } - return bearbeitet; + bearbeitetRepository.save(bearbeitet); + + return new Gson().toJson(bearbeitet); + + } else { // kein angemeldeter User startet den Cache + Optional cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID)); + if (cacheOptional.isPresent()) { + Cache cache = cacheOptional.get(); + return new Gson().toJson(cache); + } else { + return "There is no cache with the ID " + cacheID; + } + } } }