From dbb070841460acb19c3fbbf352476041399ac888 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sun, 19 Feb 2017 20:46:24 +0100
Subject: [PATCH] Add Project Remove Listener, mark old listener classes as
 deprecated

---
 .../server/project/ProjectHandler.scala       |  1 +
 .../listener/CollectionAddListener.scala      |  1 +
 .../listener/CollectionRemoveListener.scala   |  1 +
 .../server/project/listener/Listener.scala    |  1 +
 .../listener/PropertyUpdateListener.scala     |  1 +
 .../project/sync/ProjectSyncHandler.scala     |  5 +++--
 .../project/ProjectRemoveListener.scala       | 21 +++++++++++++++++++
 7 files changed, 29 insertions(+), 2 deletions(-)
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectRemoveListener.scala

diff --git a/src/main/scala/de/tobias/playpad/server/server/project/ProjectHandler.scala b/src/main/scala/de/tobias/playpad/server/server/project/ProjectHandler.scala
index 786d9f4..997bdd3 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/ProjectHandler.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/ProjectHandler.scala
@@ -15,6 +15,7 @@ import scala.collection.{Map, mutable}
 /**
   * Created by tobias on 13.02.17.
   */
+@Deprecated
 @WebSocket class ProjectHandler(sessionDao: Dao[account.Session, Int], connection: Connection) {
 
 	// TODO mutable.HashSet --> Set
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionAddListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionAddListener.scala
index 0bc3088..20fda78 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionAddListener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionAddListener.scala
@@ -11,6 +11,7 @@ import scala.collection.JavaConverters
 /**
   * Created by tobias on 18.02.17.
   */
+@Deprecated
 class CollectionAddListener extends Listener {
 	override def onChange(json: JsonObject, connection: Connection): Unit = {
 		val childClass = json.get("child_class").getAsString
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionRemoveListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionRemoveListener.scala
index 20875eb..9de3640 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionRemoveListener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/listener/CollectionRemoveListener.scala
@@ -8,6 +8,7 @@ import de.tobias.playpad.server.server.SqlHelper
 /**
   * Created by tobias on 18.02.17.
   */
+@Deprecated
 class CollectionRemoveListener extends Listener {
 	override def onChange(json: JsonObject, connection: Connection): Unit = {
 		val childClass = json.get("child_class").getAsString
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/listener/Listener.scala b/src/main/scala/de/tobias/playpad/server/server/project/listener/Listener.scala
index 7d8220b..76703a0 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/listener/Listener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/listener/Listener.scala
@@ -7,6 +7,7 @@ import com.google.gson.JsonObject
 /**
   * Created by tobias on 18.02.17.
   */
+@Deprecated
 trait Listener {
 
 	def onChange(json: JsonObject, connection: Connection): Unit
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/listener/PropertyUpdateListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/listener/PropertyUpdateListener.scala
index 33aba2d..3bc5a2a 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/listener/PropertyUpdateListener.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/listener/PropertyUpdateListener.scala
@@ -8,6 +8,7 @@ import de.tobias.playpad.server.server.SqlHelper
 /**
   * Created by tobias on 18.02.17.
   */
+@Deprecated
 class PropertyUpdateListener extends Listener {
 	override def onChange(json: JsonObject, connection: Connection): Unit = {
 		json match {
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
index 9e73872..24563e0 100644
--- a/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/ProjectSyncHandler.scala
@@ -6,7 +6,7 @@ import com.google.gson.{JsonObject, JsonParser}
 import com.j256.ormlite.dao.Dao
 import de.tobias.playpad.server.account
 import de.tobias.playpad.server.account.Account
-import de.tobias.playpad.server.server.project.sync.listener.project.{ProjectAddListener, ProjectUpdateListener}
+import de.tobias.playpad.server.server.project.sync.listener.project.{ProjectAddListener, ProjectRemoveListener, ProjectUpdateListener}
 import org.eclipse.jetty.websocket.api.Session
 import org.eclipse.jetty.websocket.api.annotations.{OnWebSocketClose, OnWebSocketConnect, OnWebSocketMessage, WebSocket}
 
@@ -22,7 +22,8 @@ import scala.collection.{Map, mutable}
 
 	private val listeners = Map(
 		"pro-add" -> new ProjectAddListener(),
-		"pro-update" -> new ProjectUpdateListener()
+		"pro-update" -> new ProjectUpdateListener(),
+		"pro-rm" -> new ProjectRemoveListener()
 	)
 
 	@OnWebSocketConnect def onConnect(serverSession: Session): Unit = {
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectRemoveListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectRemoveListener.scala
new file mode 100644
index 0000000..2165680
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectRemoveListener.scala
@@ -0,0 +1,21 @@
+package de.tobias.playpad.server.server.project.sync.listener.project
+
+import java.sql.Connection
+import java.util.UUID
+
+import com.google.gson.JsonObject
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.utils.SqlDef
+import de.tobias.playpad.server.server.SqlHelper
+import de.tobias.playpad.server.server.project.sync.listener.Listener
+
+/**
+  * Created by tobias on 19.02.17.
+  */
+class ProjectRemoveListener extends Listener {
+	override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
+		val projectId = UUID.fromString(json.get("id").getAsString)
+
+		SqlHelper.delete(connection, SqlDef.PROJECT, projectId)
+	}
+}
-- 
GitLab