From 38d077a579c772d4647c478dbedfe249d36cb200 Mon Sep 17 00:00:00 2001
From: Thomas <gltron3000@gmail.com>
Date: Fri, 29 May 2020 18:46:22 +0200
Subject: [PATCH] Fixed users vote

---
 .../java/mozen/business/ModelManager.java     |  8 +++++-
 .../main/java/mozen/business/VoteManager.java | 12 +++-----
 mozen/src/main/java/mozen/model/Model.java    | 28 ++++++++++---------
 mozen/src/main/java/mozen/model/User.java     |  7 ++---
 .../src/main/resources/application.properties | 10 +++----
 5 files changed, 33 insertions(+), 32 deletions(-)

diff --git a/mozen/src/main/java/mozen/business/ModelManager.java b/mozen/src/main/java/mozen/business/ModelManager.java
index 963a66a..7f0049a 100644
--- a/mozen/src/main/java/mozen/business/ModelManager.java
+++ b/mozen/src/main/java/mozen/business/ModelManager.java
@@ -142,7 +142,13 @@ public class ModelManager implements IModelManager {
     if (!UserHelper.isAuthor(model.getAuthor(), user))
       throw new Exception("Not the author");
 
-    modelRepo.deleteById(id);
+    System.err.println("[MODEL MANAGER] Delete 1");
+
+    System.err.println("[MODEL MANAGER] Delete 2");
+
+    modelRepo.delete(model);
+
+    System.err.println("[MODEL MANAGER] Delete 3");
   }
 
   @Override
diff --git a/mozen/src/main/java/mozen/business/VoteManager.java b/mozen/src/main/java/mozen/business/VoteManager.java
index 019ce72..33cfca2 100644
--- a/mozen/src/main/java/mozen/business/VoteManager.java
+++ b/mozen/src/main/java/mozen/business/VoteManager.java
@@ -27,10 +27,9 @@ public class VoteManager implements IVoteManager {
       throw new Exception("Up present");
 
     model.setVotes(model.getVotes()+1);
-    user.getUpvotes().add(model);
+    model.getUsersUpvotes().add(user);
 
     modelRepo.save(model);
-    userRepo.save(user);
   }
 
   @Override
@@ -43,10 +42,9 @@ public class VoteManager implements IVoteManager {
       throw new Exception("Downvote present");
 
     model.setVotes(model.getVotes()-1);
-    user.getDownvotes().add(model);
+    model.getUsersDownvotes().add(user);
 
     modelRepo.save(model);
-    userRepo.save(user);
   }
 
   @Override
@@ -59,10 +57,9 @@ public class VoteManager implements IVoteManager {
       throw new Exception("No upvote");
 
     model.setVotes(model.getVotes()-1);
-    user.getUpvotes().remove(model);
+    model.getUsersUpvotes().remove(user);
 
     modelRepo.save(model);
-    userRepo.save(user);
   }
 
   @Override
@@ -75,10 +72,9 @@ public class VoteManager implements IVoteManager {
       throw new Exception("No downvote");
 
     model.setVotes(model.getVotes()+1);
-    user.getDownvotes().remove(model);
+    model.getUsersDownvotes().remove(user);
 
     modelRepo.save(model);
-    userRepo.save(user);
   }
 
   @Override
diff --git a/mozen/src/main/java/mozen/model/Model.java b/mozen/src/main/java/mozen/model/Model.java
index f0bcaa6..dfdb612 100644
--- a/mozen/src/main/java/mozen/model/Model.java
+++ b/mozen/src/main/java/mozen/model/Model.java
@@ -124,16 +124,18 @@ public class Model implements Serializable{
 
   @Basic
   @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
-  private Set<User> upvotes;
+  @JoinTable(name = "model_upvotes")
+  private Set<User> usersUpvotes;
 
   @Basic
   @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
-  private Set<User> downvotes;
+  @JoinTable(name = "model_downvotes")
+  private Set<User> usersDownvotes;
 
   public Model() {
   }
 
-  public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, String fileName, String contentId, long contentLength, String fileType, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments, Set<User> upvotes, Set<User> downvotes) {
+  public Model(Long id, String name, String shortDescription, String longDescription, Date added, Date lastModified, int votes, double performance, String performanceUnit, double performanceIndex, int parameterCount, String fileName, String contentId, long contentLength, String fileType, String checksum, boolean isVerified, User author, Set<Tag> tags, Set<CustomLayer> customLayers, Set<Comment> comments, Set<User> usersUpvotes, Set<User> usersDownvotes) {
     this.id = id;
     this.name = name;
     this.shortDescription = shortDescription;
@@ -155,8 +157,8 @@ public class Model implements Serializable{
     this.tags = tags;
     this.customLayers = customLayers;
     this.comments = comments;
-    this.upvotes = upvotes;
-    this.downvotes = downvotes;
+    this.usersUpvotes = usersUpvotes;
+    this.usersDownvotes = usersDownvotes;
   }
   
   @JsonIgnore
@@ -336,21 +338,21 @@ public class Model implements Serializable{
   }
 
   @JsonIgnore
-  public Set<User> getUpvotes() {
-    return this.upvotes;
+  public Set<User> getUsersUpvotes() {
+    return this.usersUpvotes;
   }
 
-  public void setUpvotes(Set<User> upvotes) {
-    this.upvotes = upvotes;
+  public void setUsersUpvotes(Set<User> usersUpvotes) {
+    this.usersUpvotes = usersUpvotes;
   }
 
   @JsonIgnore
-  public Set<User> getDownvotes() {
-    return this.downvotes;
+  public Set<User> getUsersDownvotes() {
+    return this.usersDownvotes;
   }
 
-  public void setDownvotes(Set<User> downvotes) {
-    this.downvotes = downvotes;
+  public void setUsersDownvotes(Set<User> usersDownvotes) {
+    this.usersDownvotes = usersDownvotes;
   }
 
 }
\ No newline at end of file
diff --git a/mozen/src/main/java/mozen/model/User.java b/mozen/src/main/java/mozen/model/User.java
index 473af1d..e3845ad 100644
--- a/mozen/src/main/java/mozen/model/User.java
+++ b/mozen/src/main/java/mozen/model/User.java
@@ -13,7 +13,6 @@ import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.JoinTable;
 import javax.persistence.ManyToMany;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
@@ -70,14 +69,12 @@ public class User implements Serializable{
   private Set<Comment> comments;
 
   @Basic
-  @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
-  @JoinTable(name = "model_vote_up")
+  @ManyToMany(fetch = FetchType.LAZY, mappedBy = "usersUpvotes")
   @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
   private Set<Model> upvotes;
 
   @Basic
-  @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
-  @JoinTable(name = "model_vote_down")
+  @ManyToMany(fetch = FetchType.LAZY, mappedBy = "usersDownvotes")
   @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
   private Set<Model> downvotes;
 
diff --git a/mozen/src/main/resources/application.properties b/mozen/src/main/resources/application.properties
index 75886fb..730933a 100644
--- a/mozen/src/main/resources/application.properties
+++ b/mozen/src/main/resources/application.properties
@@ -22,11 +22,11 @@ server.port=8181
 #spring.jpa.hibernate.ddl-auto=update
 
 # DOCKER + MARIADB
-spring.datasource.url=jdbc:mariadb://mozen_mariadb:3306/MOZEN_DB
-spring.datasource.username=mozen_user
-spring.datasource.password=1234
-spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
-spring.jpa.hibernate.ddl-auto=update
+#spring.datasource.url=jdbc:mariadb://mozen_mariadb:3306/MOZEN_DB
+#spring.datasource.username=mozen_user
+#spring.datasource.password=1234
+#spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
+#spring.jpa.hibernate.ddl-auto=update
 
 spring.servlet.multipart.max-file-size=10GB
 spring.servlet.multipart.max-request-size=10GB
-- 
GitLab