From cd9d75224a98d319c2f7c3dcca128346354d3565 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sun, 19 Feb 2017 19:54:46 +0100
Subject: [PATCH] Add Project Update Listener

---
 .../project/sync/ProjectSyncHandler.scala     |  5 ++--
 .../project/ProjectUpdateListener.scala       | 24 +++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectUpdateListener.scala

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 2bb1959..9e73872 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
+import de.tobias.playpad.server.server.project.sync.listener.project.{ProjectAddListener, ProjectUpdateListener}
 import org.eclipse.jetty.websocket.api.Session
 import org.eclipse.jetty.websocket.api.annotations.{OnWebSocketClose, OnWebSocketConnect, OnWebSocketMessage, WebSocket}
 
@@ -21,7 +21,8 @@ import scala.collection.{Map, mutable}
 	private var sessions: Map[Account, mutable.HashSet[Session]] = new mutable.HashMap[Account, mutable.HashSet[Session]]()
 
 	private val listeners = Map(
-		"pro-add" -> new ProjectAddListener()
+		"pro-add" -> new ProjectAddListener(),
+		"pro-update" -> new ProjectUpdateListener()
 	)
 
 	@OnWebSocketConnect def onConnect(serverSession: Session): Unit = {
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectUpdateListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectUpdateListener.scala
new file mode 100644
index 0000000..6f8a143
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/project/ProjectUpdateListener.scala
@@ -0,0 +1,24 @@
+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 ProjectUpdateListener extends Listener {
+	override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
+		val projectId = UUID.fromString(json.get("id").getAsString)
+		val field = json.get("field").getAsString
+
+		field match {
+			case "name" => SqlHelper.insertOrUpdate(connection, SqlDef.PROJECT, projectId, SqlDef.PROJECT_NAME, json.get("value").getAsString)
+		}
+	}
+}
-- 
GitLab