From fd33acb2f15ff44ac93be15cbcf8539c16f37c24 Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Thu, 12 Jul 2018 11:26:32 +0200
Subject: [PATCH] feat: delete quiz in db

---
 .../gf/interfaces/IPeerAssessment.java           |  2 ++
 .../controller/service/FBAssessement.java        |  5 +++++
 .../controller/service/PeerAssessment.java       |  5 +++++
 .../controller/service/PeerAssessmentDummy.java  |  5 +++++
 .../controller/service/QuizDBCommunication.java  |  9 +++++++++
 .../assessment/controller/view/QuizView.java     |  8 ++++++++
 .../src/main/webapp/assets/js/Quiz.js            |  2 +-
 .../src/main/webapp/assets/js/createQuiz.js      | 16 +++++++++++++++-
 .../src/main/webapp/assets/js/viewQuiz.js        | 13 +++++++++++--
 .../src/main/webapp/pages/viewQuiz.jsp           |  2 ++
 10 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index e3b65f14..57c44dc2 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -74,4 +74,6 @@ public interface IPeerAssessment {
      * @param groupId
      */
     void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId);
+
+    void deleteQuiz(String quizId);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
index df592667..2aa7c041 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
@@ -57,4 +57,9 @@ public class FBAssessement extends AssessmentDAO {
     public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId, String groupId) {
 
     }
+
+    @Override
+    public void deleteQuiz(String quizId) {
+
+    }
 }
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 a228065a..afdc9715 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
@@ -34,6 +34,11 @@ public class PeerAssessment implements IPeerAssessment {
 
     }
 
+    @Override
+    public void deleteQuiz(String quizId) {
+        new QuizDBCommunication().deleteQuiz(quizId);
+    }
+
     @Override
     public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
         return null;
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 35920c84..b78a2118 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
@@ -64,6 +64,11 @@ public class PeerAssessmentDummy implements IPeerAssessment {
         int breakpoint = 0; //todo: print an http-answer for the ajax-request to receive
     }
 
+    @Override
+    public void deleteQuiz(String quizId) {
+
+    }
+
     @Override
     public Assessment getAssessmentDataFromDB(StudentIdentifier student) {
         int[] quizAnswer = {1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1};
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
index bd09a9ff..fc0fdc32 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/QuizDBCommunication.java
@@ -2,6 +2,7 @@ package unipotsdam.gf.modules.assessment.controller.service;
 
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
+import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.modules.assessment.controller.model.Quiz;
 
 import javax.annotation.ManagedBean;
@@ -85,4 +86,12 @@ public class QuizDBCommunication {
         }
         return result;
     }
+
+    public void deleteQuiz(String quizId) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "DELETE FROM quiz where question = (?)";
+        connect.issueInsertOrDeleteStatement(mysqlRequest, quizId);
+        connect.close();
+    }
 }
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 9c542dda..fe4dda4a 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
@@ -39,6 +39,14 @@ public class QuizView implements IPeerAssessment {
         //todo: checkout the POST-variable. should be peerRating but its null atm.
     }
 
+    @POST
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Path("/quiz/{quizId}")
+    @Override
+    public void deleteQuiz(@PathParam("quizId") String quizId) {
+        peer.deleteQuiz(quizId);
+    }
+
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     @Consumes(MediaType.APPLICATION_JSON)
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
index c5053ab2..13320da6 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
@@ -11,7 +11,7 @@ $(document).ready(function(){
                 var trQuestion = document.createElement('TR');
                 trQuestion.className="pageChanger";
                 trQuestion.innerHTML = '<td colspan="' + colspan + '"><h3>' +
-                    '<a href="viewQuiz.jsp?token='+getUserTokenFromUrl()+'&quizId='+ encodeURI(data[quiz].question) + '"</a>' +
+                    '<a href="viewQuiz.jsp?token='+getUserTokenFromUrl()+'&quizId='+ encodeURIComponent(data[quiz].question) + '"</a>' +
                     data[quiz].question+'</h3></td>';
                 table.appendChild(trQuestion);
             }
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
index 5da5a5f0..e845ceab 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
@@ -1,5 +1,19 @@
 $(document).ready(function () {
-    $("#save").on('click', function () {//todo: remember to cut out whitespace and signs (?.,;)
+    $("#save").on('click', function () {
+        var quiz = {
+            question: 'who am I',//todo: naja halt Quizskelett finden, erstellen und so URL encoden
+            answer: ''
+        };
+        $.ajax({
+            url: '../rest/assessments/quiz',
+            type: 'POST',
+            success: function(){
+
+        },
+        error: function(a){
+
+        }
+        });
         document.location = "Quiz.jsp?token=" + getUserTokenFromUrl();
     });
 });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
index 06a59b90..f6f07484 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
@@ -61,7 +61,16 @@ $(document).ready(function () {
             alert('Fehler ' + a);
         }
     });
-    $("#submitQuiz").on("click", function () {
-
+    $("#deleteQuiz").on("click", function () {
+        $.ajax({
+            url: '../rest/assessments/quiz/' + encodeURIComponent(quizId),
+            type: 'POST',
+            success: function () {
+                document.location.href="Quiz.jsp?token="+getUserTokenFromUrl();
+            },
+            error: function(a){
+                alert(a)
+            }
+        });
     });
 });
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
index 800ad4dc..9c378feb 100644
--- a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
@@ -11,7 +11,9 @@
     <link rel="stylesheet" href="../assets/css/styles.css">
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
+    <script src="../assets/js/utility.js"></script>
     <script src="../assets/js/viewQuiz.js"></script>
+
     <link rel="stylesheet" href="../assets/fonts/font-awesome.min.css">
     <link rel="stylesheet" href="../assets/css/Community-ChatComments.css">
     <link rel="stylesheet" href="../assets/css/Sidebar-Menu-1.css">
-- 
GitLab