From cddfb033ffa848f56ae183a3ba5f8283f932453d Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Wed, 9 Dec 2015 12:00:57 +0100 Subject: [PATCH] bugfix database + add user to articles --- src/main/java/org/hbp/mip/MIPApplication.java | 22 ++++++++++++++++++- src/main/java/org/hbp/mip/model/Article.java | 1 + src/main/java/org/hbp/mip/model/Chart.java | 1 + .../org/hbp/mip/model/ChartConfigSet.java | 6 ++--- src/main/java/org/hbp/mip/model/Dataset.java | 1 + src/main/java/org/hbp/mip/model/Filter.java | 1 + src/main/java/org/hbp/mip/model/Group.java | 1 + src/main/java/org/hbp/mip/model/Model.java | 1 + src/main/java/org/hbp/mip/model/Query.java | 1 + src/main/java/org/hbp/mip/model/Tag.java | 6 ++--- src/main/java/org/hbp/mip/model/User.java | 12 ++++++++-- src/main/java/org/hbp/mip/model/Value.java | 6 ++--- src/main/java/org/hbp/mip/model/Variable.java | 1 + 13 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/hbp/mip/MIPApplication.java b/src/main/java/org/hbp/mip/MIPApplication.java index fc4264fc7..963ce02c4 100644 --- a/src/main/java/org/hbp/mip/MIPApplication.java +++ b/src/main/java/org/hbp/mip/MIPApplication.java @@ -75,6 +75,24 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { return principal; } + private User principalToUser(Principal principal) { + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.beginTransaction(); + org.hibernate.Query query = session.createQuery("from User where username= :username"); + query.setString("username", principal.getName()); + User user = (User) query.uniqueResult(); + session.getTransaction().commit(); + if(user == null) + { + session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.beginTransaction(); + user = new User(principal); + session.save(user); + session.getTransaction().commit(); + } + return user; + } + @RequestMapping(value = "/articles", method = RequestMethod.GET) @ResponseBody public List<Article> getArticles() { @@ -133,13 +151,15 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { @RequestMapping(value = "/articles", method = RequestMethod.POST) @ResponseBody - public Article postArticle(@RequestBody Article article) { + public Article postArticle(@RequestBody Article article, Principal principal) { + User user = principalToUser(principal); Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); article.setCreatedAt(new Date()); article.setPublishedAt(new Date()); article.setSlug(article.getTitle().toLowerCase()); article.setStatus("published"); + article.setCreatedBy(user); session.save(article); session.getTransaction().commit(); return article; diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java index afc86a5b6..d3a3173b8 100644 --- a/src/main/java/org/hbp/mip/model/Article.java +++ b/src/main/java/org/hbp/mip/model/Article.java @@ -10,6 +10,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "article_mip") public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Chart.java b/src/main/java/org/hbp/mip/model/Chart.java index 382f9ac91..c5ec9db5c 100644 --- a/src/main/java/org/hbp/mip/model/Chart.java +++ b/src/main/java/org/hbp/mip/model/Chart.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "chart_mip") public class Chart { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/ChartConfigSet.java b/src/main/java/org/hbp/mip/model/ChartConfigSet.java index 040f240c6..89e19dfc3 100644 --- a/src/main/java/org/hbp/mip/model/ChartConfigSet.java +++ b/src/main/java/org/hbp/mip/model/ChartConfigSet.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "chart_config_set_mip") public class ChartConfigSet { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java index 38f042443..7a1942ad3 100644 --- a/src/main/java/org/hbp/mip/model/Dataset.java +++ b/src/main/java/org/hbp/mip/model/Dataset.java @@ -9,6 +9,7 @@ import java.util.Date; import java.util.List; @Entity +@Table(name = "dataset_mip") public class Dataset { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Filter.java b/src/main/java/org/hbp/mip/model/Filter.java index 3c24be73f..ca62dffb4 100644 --- a/src/main/java/org/hbp/mip/model/Filter.java +++ b/src/main/java/org/hbp/mip/model/Filter.java @@ -7,6 +7,7 @@ package org.hbp.mip.model; import javax.persistence.*; @Entity +@Table(name = "filter_mip") public class Filter { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java index 4f9d54b29..cc93b4f53 100644 --- a/src/main/java/org/hbp/mip/model/Group.java +++ b/src/main/java/org/hbp/mip/model/Group.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "group_mip") public class Group { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java index dbd119ebd..36600b419 100644 --- a/src/main/java/org/hbp/mip/model/Model.java +++ b/src/main/java/org/hbp/mip/model/Model.java @@ -8,6 +8,7 @@ import javax.persistence.*; import java.util.Date; @Entity +@Table(name = "model_mip") public class Model { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java index 6d81619b9..2ece36a75 100644 --- a/src/main/java/org/hbp/mip/model/Query.java +++ b/src/main/java/org/hbp/mip/model/Query.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "query_mip") public class Query { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java index 48ad3e707..bfe8f74b8 100644 --- a/src/main/java/org/hbp/mip/model/Tag.java +++ b/src/main/java/org/hbp/mip/model/Tag.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "tag_mip") public class Tag { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java index 67b0d3826..5e3290a73 100644 --- a/src/main/java/org/hbp/mip/model/User.java +++ b/src/main/java/org/hbp/mip/model/User.java @@ -5,10 +5,12 @@ package org.hbp.mip.model; import javax.persistence.*; +import java.security.Principal; import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "user_mip") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -22,7 +24,7 @@ public class User { private String phone; private String birthday; private String gender; - @ElementCollection + @ElementCollection(fetch = FetchType.EAGER) private List<String> languages; private String city; private String country; @@ -31,12 +33,18 @@ public class User { private boolean isActive; private String apikey; private String team; - @ElementCollection + @ElementCollection(fetch = FetchType.EAGER) private List<String> roles; public User() { } + public User(Principal principal) + { + this.username = principal.getName(); + this.fullname = this.username; + } + public Long getId() { return id; } diff --git a/src/main/java/org/hbp/mip/model/Value.java b/src/main/java/org/hbp/mip/model/Value.java index f5afddc68..845dd3d9d 100644 --- a/src/main/java/org/hbp/mip/model/Value.java +++ b/src/main/java/org/hbp/mip/model/Value.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "value_mip") public class Value { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java index 9439aabee..a19fe9d57 100644 --- a/src/main/java/org/hbp/mip/model/Variable.java +++ b/src/main/java/org/hbp/mip/model/Variable.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "variable_mip") public class Variable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) -- GitLab