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