From 92f4ba81fd8c186373a50d3a73fcc78d435bddba Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Tue, 3 Jul 2018 16:41:12 +0200
Subject: [PATCH] feat: starting to communicate with DB. Needs functions for
 "getQuizByProject"-and stuff.

---
 .../gf/core/management/ManagementImpl.java    | 31 +++++++++++
 .../assessment/controller/model/Quiz.java     | 15 +++---
 .../controller/service/PeerAssessment.java    | 17 ++++---
 .../service/PeerAssessmentDummy.java          | 51 +++++++++++--------
 .../assessment/controller/view/QuizView.java  |  4 +-
 5 files changed, 84 insertions(+), 34 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
index 1cecac2d..8d98b2c0 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -7,6 +7,7 @@ import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.management.user.UserInterests;
 import unipotsdam.gf.core.management.user.UserProfile;
+import unipotsdam.gf.modules.assessment.controller.model.Quiz;
 import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
 
 import javax.annotation.ManagedBean;
@@ -199,6 +200,36 @@ public class ManagementImpl implements Management {
         return getUserByField("email", email);
     }
 
+    public Quiz getQuizByProjectGroupId(String projectId, String quizId){
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM quiz where projectId=" + projectId + " , question="+quizId;
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, "");
+        boolean next = vereinfachtesResultSet.next();
+        String question = "";
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        String answer = "";
+        Boolean correct = false;
+        String mcType = "";
+        while (next) {
+            mcType = vereinfachtesResultSet.getString("mcType");
+            question = vereinfachtesResultSet.getString("question");
+            answer = vereinfachtesResultSet.getString("answer");
+            correct = vereinfachtesResultSet.getBoolean("correct");
+            if (correct){
+                correctAnswers.add(answer);
+            }else{
+                incorrectAnswers.add(answer);
+            }
+            next = vereinfachtesResultSet.next();
+        }
+        Quiz quiz = new Quiz(mcType,question, correctAnswers, incorrectAnswers);
+        connect.close();
+        return quiz;
+    }
+
     private User getUserByField(String field, String value) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
index 7abafb13..e37fc2ff 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/model/Quiz.java
@@ -1,16 +1,17 @@
 package unipotsdam.gf.modules.assessment.controller.model;
 
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.ArrayList;
 
 @XmlRootElement
 
 public class Quiz {
     private String type;
     private String question;
-    private String[] correctAnswers;
-    private String[] incorrectAnswers;
+    private ArrayList<String> correctAnswers;
+    private ArrayList<String> incorrectAnswers;
 
-    public Quiz(String type, String question, String[] correctAnswers, String[] incorrectAnswers) {
+    public Quiz(String type, String question, ArrayList<String> correctAnswers, ArrayList<String> incorrectAnswers) {
         this.type = type;
         this.question = question;
         this.correctAnswers = correctAnswers;
@@ -18,19 +19,19 @@ public class Quiz {
     }
     public Quiz(){}
 
-    public String[] getIncorrectAnswers() {
+    public ArrayList<String> getIncorrectAnswers() {
         return incorrectAnswers;
     }
 
-    public void setIncorrectAnswers(String[] incorrectAnswers) {
+    public void setIncorrectAnswers(ArrayList<String> incorrectAnswers) {
         this.incorrectAnswers = incorrectAnswers;
     }
 
-    public String[] getCorrectAnswers() {
+    public ArrayList<String> getCorrectAnswers() {
         return correctAnswers;
     }
 
-    public void setCorrectAnswers(String[] correctAnswers) {
+    public void setCorrectAnswers(ArrayList<String> correctAnswers) {
         this.correctAnswers = correctAnswers;
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
index 6c427c4b..9ab276c6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
@@ -1,7 +1,10 @@
 package unipotsdam.gf.modules.assessment.controller.service;
 
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.controller.model.*;
+import unipotsdam.gf.core.database.mysql.MysqlConnect;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,8 +15,13 @@ public class PeerAssessment implements IPeerAssessment {
 
     }
 
-    @Override
-    public Quiz getQuiz(String projectId, String groupId) {
+    @Override//returns one quiz
+    public Quiz getQuiz(String projectId, String quizId) {
+        return new ManagementImpl().getQuizByProjectGroupId(projectId,quizId);
+    }
+
+    @Override //returns all quizzes in the course
+    public ArrayList<Quiz> getQuiz(String projectId) {
         return null;
     }
 
@@ -42,10 +50,7 @@ public class PeerAssessment implements IPeerAssessment {
         return 0;
     }
 
-    @Override
-    public ArrayList<Quiz> getQuiz(String projectId) {
-        return null;
-    }
+
 
     @Override
     public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
index 9de14e21..35920c84 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
@@ -14,36 +14,47 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     @Override
     public Quiz getQuiz(String projectId, String quizId) {
-        String[] correctAnswers = new String[2];
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
         Quiz sampleQuiz;
         if (quizId.equals("2")) {
-            correctAnswers[0] = "42";
-            correctAnswers[1] = "" + projectId + " " + quizId;
-            String[] wrongAnswers = {"a god created creature", "a sum of my mistakes"};
-            sampleQuiz = new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, wrongAnswers);
+            correctAnswers.add("42");
+            correctAnswers.add("" + projectId + " " + quizId);
+
+            incorrectAnswers.add("a god created creature");
+            incorrectAnswers.add( "a sum of my mistakes");
+            sampleQuiz = new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers);
         } else {
-            correctAnswers[0] = "ja, nicht?!";
-            correctAnswers[1] = "nee, oder doch?!";
-            String[] wrongAnswers = {"Mephistopheles", "Der alte Hexenmeister!?", "Der Schimmelreiter", "alle beide"};
-            sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, wrongAnswers);
+            correctAnswers.add("ja, nicht?!");
+            correctAnswers.add("nee, oder doch?!");
+            incorrectAnswers.add("Mephistopheles");
+            incorrectAnswers.add("Der alte Hexenmeister!?");
+            incorrectAnswers.add("Der Schimmelreiter");
+            incorrectAnswers.add("alle beide");
+            sampleQuiz = new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers);
         }
 
         return sampleQuiz;
     }
 
     public ArrayList<Quiz> getQuiz(String projectId) {
-        String[] correctAnswers1 = new String[2];
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
         ArrayList<Quiz> sampleQuiz = new ArrayList<Quiz>();
-        correctAnswers1[0] = "42";
-        correctAnswers1[1] = "" + projectId + " 24";
-        String[] wrongAnswers = {"a god created creature", "a sum of my mistakes"};
-        sampleQuiz.add(new Quiz("multiple", "Who am I and if so, how many?", correctAnswers1, wrongAnswers));
-
-        String[] correctAnswers2 = new String[2];
-        correctAnswers2[0] = "ja, nicht?!";
-        correctAnswers2[1] = "nee, oder doch?!";
-        wrongAnswers = new String[]{"Mephistopheles", "Der alte Hexenmeister!?", "Der Schimmelreiter", "alle beide"};
-        sampleQuiz.add(new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers2, wrongAnswers));
+        correctAnswers.add("42");
+        correctAnswers.add("" + projectId + " 24");
+        incorrectAnswers.add("a god created creature");
+        incorrectAnswers.add( "a sum of my mistakes");
+        sampleQuiz.add(new Quiz("multiple", "Who am I and if so, how many?", correctAnswers, incorrectAnswers));
+        correctAnswers.clear();
+        incorrectAnswers.clear();
+        correctAnswers.add("ja, nicht?!");
+        correctAnswers.add("nee, oder doch?!");
+        incorrectAnswers.add("Mephistopheles");
+        incorrectAnswers.add("Der alte Hexenmeister!?");
+        incorrectAnswers.add("Der Schimmelreiter");
+        incorrectAnswers.add("alle beide");
+        sampleQuiz.add(new Quiz("multiple", "Ist das nun des Pudels wahrer Kern?", correctAnswers, incorrectAnswers));
 
         return sampleQuiz;
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
index 4c80528c..4ee52595 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
@@ -2,6 +2,7 @@ package unipotsdam.gf.modules.assessment.controller.view;
 
 import unipotsdam.gf.interfaces.IPeerAssessment;
 import unipotsdam.gf.modules.assessment.controller.model.*;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 import unipotsdam.gf.modules.assessment.controller.service.PeerAssessmentDummy;
 
 import javax.ws.rs.*;
@@ -11,7 +12,8 @@ import java.util.List;
 
 @Path("/assessments")
 public class QuizView implements IPeerAssessment {
-    private static IPeerAssessment peer =  new PeerAssessmentDummy();
+    private static IPeerAssessment peer =  new PeerAssessmentDummy();   //TestSubject
+    //private static IPeerAssessment peer =  new PeerAssessment();      //correct DB-conn and stuff
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     @Path("/project/{projectId}/quiz/{quizId}")
-- 
GitLab