From 9de044a2878c0dd30f1894f3249345f38cf53345 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Wed, 13 Jul 2016 16:10:37 +0200 Subject: [PATCH] refactoring voteApi to use Spring Data --- .../java/org/hbp/mip/controllers/AppsApi.java | 31 +++++++------------ .../hbp/mip/repositories/AppRepository.java | 2 +- .../hbp/mip/repositories/VoteRepository.java | 3 ++ 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/hbp/mip/controllers/AppsApi.java b/src/main/java/org/hbp/mip/controllers/AppsApi.java index a1f644a93..2134a9087 100644 --- a/src/main/java/org/hbp/mip/controllers/AppsApi.java +++ b/src/main/java/org/hbp/mip/controllers/AppsApi.java @@ -8,7 +8,10 @@ import io.swagger.annotations.*; import org.apache.log4j.Logger; import org.hbp.mip.MIPApplication; import org.hbp.mip.model.App; +import org.hbp.mip.model.User; +import org.hbp.mip.model.Vote; import org.hbp.mip.repositories.AppRepository; +import org.hbp.mip.repositories.VoteRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -32,6 +35,9 @@ public class AppsApi { @Autowired AppRepository appRepository; + @Autowired + VoteRepository voteRepository; + @ApiOperation(value = "Get apps", response = App.class, responseContainer = "List") @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") }) @RequestMapping(method = RequestMethod.GET) @@ -48,23 +54,14 @@ public class AppsApi { @ApiParam(value = "value", required = true) @PathVariable("value") Integer value ) { - /*User user = mipApplication.getUser(); + User user = mipApplication.getUser(); + App app = appRepository.findOne(id); - 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 = voteRepository.find(user, app).iterator().next(); if (vote != null) { vote.setValue(value); - - session.update(vote); + voteRepository.save(vote); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } else @@ -73,13 +70,9 @@ public class AppsApi { vote.setUser(user); vote.setValue(value); vote.setApp(app); - - session.save(vote); - session.getTransaction().commit(); + voteRepository.save(vote); return new ResponseEntity<>(HttpStatus.CREATED); - }*/ - - return new ResponseEntity<>(HttpStatus.CREATED); + } } } diff --git a/src/main/java/org/hbp/mip/repositories/AppRepository.java b/src/main/java/org/hbp/mip/repositories/AppRepository.java index 27fb1d26d..ba00367af 100644 --- a/src/main/java/org/hbp/mip/repositories/AppRepository.java +++ b/src/main/java/org/hbp/mip/repositories/AppRepository.java @@ -7,5 +7,5 @@ import org.springframework.data.repository.CrudRepository; * Created by mirco on 11.07.16. */ -public interface AppRepository extends CrudRepository<App, String> { +public interface AppRepository extends CrudRepository<App, Integer> { } diff --git a/src/main/java/org/hbp/mip/repositories/VoteRepository.java b/src/main/java/org/hbp/mip/repositories/VoteRepository.java index d96a56369..45e44fa1c 100644 --- a/src/main/java/org/hbp/mip/repositories/VoteRepository.java +++ b/src/main/java/org/hbp/mip/repositories/VoteRepository.java @@ -1,5 +1,7 @@ package org.hbp.mip.repositories; +import org.hbp.mip.model.App; +import org.hbp.mip.model.User; import org.hbp.mip.model.Vote; import org.springframework.data.repository.CrudRepository; @@ -8,4 +10,5 @@ import org.springframework.data.repository.CrudRepository; */ public interface VoteRepository extends CrudRepository<Vote, Long> { + Iterable<Vote> find(User user, App app); } -- GitLab