From 9c4f882925cfe83c7aab1624d592ae295cd4d915 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Wed, 25 May 2016 10:44:49 +0200 Subject: [PATCH] return 400 when trying to vote out of range 0 to 5 and return 409 when trying to vote multiple times on the same app --- .../java/org/hbp/mip/controllers/AppsApi.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/hbp/mip/controllers/AppsApi.java b/src/main/java/org/hbp/mip/controllers/AppsApi.java index f65802db1..7c2794d22 100644 --- a/src/main/java/org/hbp/mip/controllers/AppsApi.java +++ b/src/main/java/org/hbp/mip/controllers/AppsApi.java @@ -10,6 +10,7 @@ import org.hbp.mip.model.App; import org.hbp.mip.model.User; import org.hbp.mip.model.Vote; import org.hbp.mip.utils.HibernateUtil; +import org.hibernate.NonUniqueObjectException; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import javax.validation.ConstraintViolationException; import java.util.LinkedList; import java.util.List; @@ -82,7 +84,24 @@ public class AppsApi { session.save(vote); session.getTransaction().commit(); - } catch (Exception e) + } + catch (ConstraintViolationException cve) + { + if(session.getTransaction() != null) + { + session.getTransaction().rollback(); + } + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + catch (NonUniqueObjectException nuoe) + { + if(session.getTransaction() != null) + { + session.getTransaction().rollback(); + } + return new ResponseEntity<>(HttpStatus.CONFLICT); + } + catch (Exception e) { if(session.getTransaction() != null) { -- GitLab