From ee34bcd23e49c6810f6c6809758afb1c5a998ce2 Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Thu, 14 Jul 2016 09:46:21 +0200 Subject: [PATCH] refactoring articleApi to use SpringData --- .../org/hbp/mip/controllers/ArticlesApi.java | 36 +++++++++---------- .../mip/repositories/ArticleRepository.java | 3 ++ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java index 3fb682dd8..7b32a2821 100644 --- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java +++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; import java.util.Date; +import java.util.Iterator; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -45,34 +46,31 @@ public class ArticlesApi { @ApiParam(value = "Only ask articles from own team") @RequestParam(value = "team", required = false) Boolean team ) { - /*User user = mipApplication.getUser(); + User user = mipApplication.getUser(); + Iterable<Article> articles; - String queryString = "SELECT a FROM Article a, User u WHERE a.createdBy=u.username"; - if(status != null) - { - queryString += " AND status= :status"; - } if(own != null && own) { - queryString += " AND u.username= :username"; + articles = articleRepository.findByCreatedBy(user); } else { - queryString += " AND (status='published' or u.username= :username)"; + articles = articleRepository.findByStatusOrCreatedBy("published", user); } - List articles = new LinkedList<>(); - Query query = session.createQuery(queryString); - if (status != null) { - query.setString("status", status); + if(status != null) + { + for(Iterator<Article> i = articles.iterator(); i.hasNext();) + { + Article a = i.next(); + if(!status.equals(a.getStatus())) + { + i.remove(); + } + } } - query.setString("username", user.getUsername()); - articles = query.list(); - session.getTransaction().commit(); - - return ResponseEntity.ok(articles);*/ - return ResponseEntity.ok(articleRepository.findAll()); + return ResponseEntity.ok(articles); } @@ -108,7 +106,7 @@ public class ArticlesApi { } } while(count > 0); - String slug = null; + String slug; try { slug = new Slugify().slugify(article.getTitle()); } catch (IOException e) { diff --git a/src/main/java/org/hbp/mip/repositories/ArticleRepository.java b/src/main/java/org/hbp/mip/repositories/ArticleRepository.java index f9d8b8fea..b27ecfaa4 100644 --- a/src/main/java/org/hbp/mip/repositories/ArticleRepository.java +++ b/src/main/java/org/hbp/mip/repositories/ArticleRepository.java @@ -1,6 +1,7 @@ package org.hbp.mip.repositories; import org.hbp.mip.model.Article; +import org.hbp.mip.model.User; import org.springframework.data.repository.CrudRepository; /** @@ -9,4 +10,6 @@ import org.springframework.data.repository.CrudRepository; public interface ArticleRepository extends CrudRepository<Article, String> { Long countByTitle(String title); + Iterable<Article> findByCreatedBy(User user); + Iterable<Article> findByStatusOrCreatedBy(String status, User user); } -- GitLab