diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 6cbad26..ac8fd0e 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -61,87 +61,88 @@ public class Controller { return ResponseEntity.status(200).body(new Gson().toJson(cacheRepository.findAll())); } - @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose - @RequestMapping("/api/startCache") - @ResponseBody - public ResponseEntity startCache(@RequestParam(value = "token", defaultValue = "-1") String token, - @RequestParam String cacheID) { - - if (!token.equals("-1")) { // ein angemeldeter user startet den cache(es werden zwei parameter übergeben) - - Bearbeitet bearbeitet = new Bearbeitet(); - - - //---------------------- - //Verify token - ResponseEntity tokenVerification = VerificationUtil.verifyToken(token); - - //Error in token verification - if (tokenVerification.getStatusCodeValue() != 200) { - return tokenVerification; - } - - Claims claims = (Claims) tokenVerification.getBody(); - - ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); - - if (getUser.getStatusCodeValue() != 200) { - return getUser; - } - - User user = (User) getUser.getBody(); - - bearbeitet.setUser(user); - - //---------------------- - //Get Cache - ResponseEntity getCache = FinderUtil.findCacheById(cacheID); - - if (getCache.getStatusCodeValue() != 200) { - return getCache; - } - - Cache cache = (Cache) getCache.getBody(); - //---------------------- - - if (bearbeitetRepository.findByUserAndCache(user, cache) != null) { - Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache); - return ResponseEntity.status(200).body(bearbeitet1); - } - - bearbeitet.setCache(cache); - - Station startStation = cache.getStationen().get(0); - bearbeitet.setAktuelleStation(startStation); - - //Get CacheAccesDefinition - ResponseEntity getCacheAccesDefinition = FinderUtil.findCacheAccesDefinitionById("0"); - - if (getCacheAccesDefinition.getStatusCodeValue() != 200) { - return getCacheAccesDefinition; - } - - CacheAccesDefinition cacheAccesDefinition = (CacheAccesDefinition) getCacheAccesDefinition.getBody(); - //---------------------- - bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); - - bearbeitetRepository.save(bearbeitet); - - return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet)); - - } else { // kein angemeldeter User startet den cache(es wird nur der cache als parameter übergeben) - - ResponseEntity getCache = FinderUtil.findCacheById(cacheID); - - if (getCache.getStatusCodeValue() != 200) { - return getCache; - } - - Cache cache = (Cache) getCache.getBody(); - - return ResponseEntity.status(200).body(new Gson().toJson(cache)); - } - } + // alte startCache-methode +// @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose +// @RequestMapping("/api/startCache") +// @ResponseBody +// public ResponseEntity startCache(@RequestParam(value = "token", defaultValue = "-1") String token, +// @RequestParam String cacheID) { +// +// if (!token.equals("-1")) { // ein angemeldeter user startet den cache(es werden zwei parameter übergeben) +// +// Bearbeitet bearbeitet = new Bearbeitet(); +// +// +// //---------------------- +// //Verify token +// ResponseEntity tokenVerification = VerificationUtil.verifyToken(token); +// +// //Error in token verification +// if (tokenVerification.getStatusCodeValue() != 200) { +// return tokenVerification; +// } +// +// Claims claims = (Claims) tokenVerification.getBody(); +// +// ResponseEntity getUser = FinderUtil.findUserFromClaim(claims); +// +// if (getUser.getStatusCodeValue() != 200) { +// return getUser; +// } +// +// User user = (User) getUser.getBody(); +// +// bearbeitet.setUser(user); +// +// //---------------------- +// //Get Cache +// ResponseEntity getCache = FinderUtil.findCacheById(cacheID); +// +// if (getCache.getStatusCodeValue() != 200) { +// return getCache; +// } +// +// Cache cache = (Cache) getCache.getBody(); +// //---------------------- +// +// if (bearbeitetRepository.findByUserAndCache(user, cache) != null) { +// Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache); +// return ResponseEntity.status(200).body(bearbeitet1); +// } +// +// bearbeitet.setCache(cache); +// +// Station startStation = cache.getStationen().get(0); +// bearbeitet.setAktuelleStation(startStation); +// +// //Get CacheAccesDefinition +// ResponseEntity getCacheAccesDefinition = FinderUtil.findCacheAccesDefinitionById("0"); +// +// if (getCacheAccesDefinition.getStatusCodeValue() != 200) { +// return getCacheAccesDefinition; +// } +// +// CacheAccesDefinition cacheAccesDefinition = (CacheAccesDefinition) getCacheAccesDefinition.getBody(); +// //---------------------- +// bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); +// +// bearbeitetRepository.save(bearbeitet); +// +// return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet)); +// +// } else { // kein angemeldeter User startet den cache(es wird nur der cache als parameter übergeben) +// +// ResponseEntity getCache = FinderUtil.findCacheById(cacheID); +// +// if (getCache.getStatusCodeValue() != 200) { +// return getCache; +// } +// +// Cache cache = (Cache) getCache.getBody(); +// +// return ResponseEntity.status(200).body(new Gson().toJson(cache)); +// } +// } @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose @RequestMapping("/api/checkStation") @@ -208,12 +209,39 @@ public class Controller { return ResponseEntity.status(400).body("The scanned station isn´t the correct following station"); } + if (!cache.getStationen().contains(station)) { + return ResponseEntity.status(400).body("The scanned station isnt a part of the cache"); + } + //---------------------- //Get Bearbeitet entry ResponseEntity getBearbeitet = FinderUtil.findBearbeitetByUserAndCache(user, cache); if (getBearbeitet.getStatusCodeValue() != 200) { - return getBearbeitet; + if (cache.getStationen().get(0).equals(station)) { + // start Cache + Bearbeitet bearbeitet = new Bearbeitet(); + bearbeitet.setUser(user); + bearbeitet.setCache(cache); + bearbeitet.setAktuelleStation(station); + + //Get CacheAccesDefinition + ResponseEntity getCacheAccesDefinition = FinderUtil.findCacheAccesDefinitionById("0"); + + if (getCacheAccesDefinition.getStatusCodeValue() != 200) { + return getCacheAccesDefinition; + } + + CacheAccesDefinition cacheAccesDefinition = (CacheAccesDefinition) getCacheAccesDefinition.getBody(); + //---------------------- + bearbeitet.setCacheAccesDefinition(cacheAccesDefinition); + + bearbeitetRepository.save(bearbeitet); + + return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet)); + } else { + return getBearbeitet; + } } Bearbeitet bearbeitet = (Bearbeitet) getBearbeitet.getBody(); @@ -225,10 +253,6 @@ public class Controller { return ResponseEntity.status(400).body("Database Error"); } - if (!cache.getStationen().contains(station)) { - return ResponseEntity.status(400).body("The scanned station isnt a part of the cache"); - } - int i = cache.getStationen().indexOf(station); if (i == 0) {