From 283f56e02d541163e4c86b59ce39b463dbbb9507 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Tue, 9 Apr 2019 16:49:17 +0200 Subject: [PATCH] There cant be two bearbeitet entities in the db featuring the same cache and user --- .../hhn/labsw/bugageocaching/controller/Controller.java | 7 ++++++- .../bugageocaching/repositories/BearbeitetRepository.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index a97359a..3a6fe55 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -126,7 +126,6 @@ public class Controller { .setSigningKey(key) .parseClaimsJws(token).getBody(); - User user = userRepository.findByUsername(claims.getSubject()); if (user == null) { return ResponseEntity.status(404).body("User was not found"); @@ -136,6 +135,12 @@ public class Controller { Optional cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID)); if (cacheOptional.isPresent()) { Cache cache = cacheOptional.get(); + + if(bearbeitetRepository.findByUserAndCache(user, cache) != null){ + Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache); + return ResponseEntity.status(400).body(bearbeitet1.getAktuelleStation()); + } + bearbeitet.setCache(cache); Station startStation = cache.getStationen().get(0); diff --git a/src/main/java/hhn/labsw/bugageocaching/repositories/BearbeitetRepository.java b/src/main/java/hhn/labsw/bugageocaching/repositories/BearbeitetRepository.java index ac5484c..4b5c1a0 100644 --- a/src/main/java/hhn/labsw/bugageocaching/repositories/BearbeitetRepository.java +++ b/src/main/java/hhn/labsw/bugageocaching/repositories/BearbeitetRepository.java @@ -1,8 +1,11 @@ package hhn.labsw.bugageocaching.repositories; import hhn.labsw.bugageocaching.entities.Bearbeitet; +import hhn.labsw.bugageocaching.entities.Cache; +import hhn.labsw.bugageocaching.entities.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.repository.CrudRepository; public interface BearbeitetRepository extends JpaRepository { + Bearbeitet findByUserAndCache(User user, Cache cache); }