From c73c05abdaecc5508e843728ffd5b2d67dbac107 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Thu, 24 May 2012 09:46:58 +0200 Subject: [PATCH] #49 transactional rate method in CineastsUserDetailsService --- .../org/neo4j/cineasts/controller/MovieController.java | 10 ++-------- .../cineasts/service/CineastsUserDetailsService.java | 9 +++++++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java index 249e42a9c..f98793225 100644 --- a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java +++ b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/controller/MovieController.java @@ -6,10 +6,8 @@ import org.neo4j.cineasts.domain.Rating; import org.neo4j.cineasts.domain.User; import org.neo4j.cineasts.repository.MovieRepository; import org.neo4j.cineasts.repository.PersonRepository; -import org.neo4j.cineasts.service.CineastsRepository; import org.neo4j.cineasts.service.CineastsUserDetailsService; import org.neo4j.cineasts.service.DatabasePopulator; -import org.neo4j.helpers.collection.IteratorUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -62,7 +60,7 @@ public class MovieController { model.addAttribute("stars", stars); Rating rating = null; if (user!=null) rating = movie.getRelationshipTo(user, Rating.class, "RATED"); - if (rating == null) rating = new Rating().rate(stars,null); + if (rating == null) rating = new Rating().rate(stars, null); model.addAttribute("userRating",rating); } return "/movies/show"; @@ -72,11 +70,7 @@ public class MovieController { public String updateMovie(Model model, @PathVariable String movieId, @RequestParam(value = "rated",required = false) Integer stars, @RequestParam(value = "comment",required = false) String comment) { Movie movie = movieRepository.findById(movieId); User user = userDetailsService.getUserFromSession(); - if (user != null && movie != null) { - int stars1 = stars==null ? -1 : stars; - String comment1 = comment!=null ? comment.trim() : null; - user.rate(movie, stars1, comment1); - } + userDetailsService.rate(user, movie, stars, comment); return singleMovieView(model,movieId); } diff --git a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java index 3f4e81a67..094dc040c 100644 --- a/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java +++ b/spring-data-neo4j-examples/cineasts-aspects/src/main/java/org/neo4j/cineasts/service/CineastsUserDetailsService.java @@ -1,5 +1,6 @@ package org.neo4j.cineasts.service; +import org.neo4j.cineasts.domain.Movie; import org.neo4j.cineasts.domain.User; import org.neo4j.cineasts.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -74,4 +75,12 @@ public class CineastsUserDetailsService implements UserDetailsService { user.addFriend(friend); } } + + @Transactional + public void rate(User user, Movie movie, Integer stars, String comment) { + if (user == null || movie == null) return; + int stars1 = stars==null ? -1 : stars; + String comment1 = comment!=null ? comment.trim() : null; + user.rate(movie, stars1, comment1); + } }