From 7b0b8b2bfcdd3ce99a56265c51f5a38207e1ac44 Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Mon, 7 Dec 2015 16:19:48 +0100
Subject: [PATCH] can write articles and show articles

---
 src/main/java/org/hbp/mip/MIPApplication.java | 25 ++++++++++++++-----
 src/main/java/org/hbp/mip/model/Article.java  |  2 +-
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/hbp/mip/MIPApplication.java b/src/main/java/org/hbp/mip/MIPApplication.java
index 541af300d..5e170a295 100644
--- a/src/main/java/org/hbp/mip/MIPApplication.java
+++ b/src/main/java/org/hbp/mip/MIPApplication.java
@@ -60,7 +60,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.security.Principal;
-import java.util.LinkedList;
+import java.util.Date;
 import java.util.List;
 
 @SpringBootApplication
@@ -102,8 +102,10 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
     @RequestMapping(value = "/models", method = RequestMethod.GET)
     @ResponseBody
     public List<Model> getModels() {
-        List<Model> models = new LinkedList<>();
-        models.add(new ModelMock(1));
+        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+        session.beginTransaction();
+        List models = session.createQuery("from Model").list();
+        session.getTransaction().commit();
         return models;
     }
 
@@ -116,8 +118,15 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
     @RequestMapping(value = "/articles", method = RequestMethod.POST)
     @ResponseBody
     public Article postArticle(@RequestBody Article article) {
-        System.out.print(article.getTitle());
-        return new ArticleMock(1);
+        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+        session.beginTransaction();
+        article.setCreatedAt(new Date());
+        article.setPublishedAt(new Date());
+        article.setSlug(article.getTitle().toLowerCase());
+        article.setStatus("published");
+        session.save(article);
+        session.getTransaction().commit();
+        return article;
     }
 
     @RequestMapping(value = "/models", method = RequestMethod.POST)
@@ -168,7 +177,11 @@ public class MIPApplication extends WebSecurityConfigurerAdapter {
     @RequestMapping(value = "/variables")
     @ResponseBody
     public List<Variable> getVariables(){
-        return null;
+        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
+        session.beginTransaction();
+        List variables = session.createQuery("from Variable").list();
+        session.getTransaction().commit();
+        return variables;
     }
 
     @RequestMapping(value = "/variables/{code}")
diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java
index 3ac1f8f48..afc86a5b6 100644
--- a/src/main/java/org/hbp/mip/model/Article.java
+++ b/src/main/java/org/hbp/mip/model/Article.java
@@ -26,7 +26,7 @@ public class Article {
     private User createdBy;
     @ManyToOne
     private User updatedBy;
-    @ManyToMany
+    @ManyToMany(fetch = FetchType.EAGER)
     private List<Tag> tags;
 
     public Article() {
-- 
GitLab