From a6fbb2ed06b76dc70a40acca234f0580a03fc676 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Wed, 1 Jun 2016 08:38:29 +0200 Subject: [PATCH] allow updating apps voted --- .../java/org/hbp/mip/controllers/AppsApi.java | 36 ++++++++++++++----- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/hbp/mip/controllers/AppsApi.java b/src/main/java/org/hbp/mip/controllers/AppsApi.java index 7c2794d22..aa0bd2357 100644 --- a/src/main/java/org/hbp/mip/controllers/AppsApi.java +++ b/src/main/java/org/hbp/mip/controllers/AppsApi.java @@ -74,16 +74,35 @@ public class AppsApi { try { session.beginTransaction(); + Vote vote = (Vote) session.createQuery("" + + "SELECT v FROM Vote v, User u, App a " + + "WHERE u=v.user " + + "AND a=v.app " + + "AND u.username= :username " + + "AND a.id= :app_id") + .setString("username", user.getUsername()) + .setLong("app_id", id) + .uniqueResult(); App app = (App) session.createQuery("FROM App where id= :id").setLong("id", id).uniqueResult(); - Vote vote = new Vote(); - vote.setUser(user); - vote.setValue(value); - vote.setApp(app); + if (vote != null) { + vote.setValue(value); - session.save(vote); - - session.getTransaction().commit(); + session.update(vote); + session.getTransaction().commit(); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + else + { + vote = new Vote(); + vote.setUser(user); + vote.setValue(value); + vote.setApp(app); + + session.save(vote); + session.getTransaction().commit(); + return new ResponseEntity<>(HttpStatus.CREATED); + } } catch (ConstraintViolationException cve) { @@ -108,8 +127,7 @@ public class AppsApi { session.getTransaction().rollback(); throw e; } + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } - - return new ResponseEntity<>(HttpStatus.CREATED); } } -- GitLab