From 1084d53c59e1fffaf4a87da47ac2bd2989de885d Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Thu, 23 Feb 2017 19:30:53 +0100 Subject: [PATCH] Add Design Add, Update, Remove Listener --- .../project/sync/ProjectSyncHandler.scala | 7 ++++- .../listener/design/DesignAddListener.scala | 26 +++++++++++++++++ .../design/DesignRemoveListener.scala | 21 ++++++++++++++ .../design/DesignUpdateListener.scala | 28 +++++++++++++++++++ 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignAddListener.scala create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignRemoveListener.scala create mode 100644 src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignUpdateListener.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 cb503f2..1c0609b 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,6 +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.design.{DesignAddListener, DesignRemoveListener, DesignUpdateListener} import de.tobias.playpad.server.server.project.sync.listener.pad.{PadAddListener, PadClearListener, PadRemoveListener, PadUpdateListener} import de.tobias.playpad.server.server.project.sync.listener.page.{PageAddListener, PageRemoveListener, PageUpdateListener} import de.tobias.playpad.server.server.project.sync.listener.path.{PathAddListener, PathRemoveListener, PathUpdateListener} @@ -41,7 +42,11 @@ import scala.collection.{Map, mutable} "path-add" -> new PathAddListener(), "path-update" -> new PathUpdateListener(), - "path-rm" -> new PathRemoveListener() + "path-rm" -> new PathRemoveListener(), + + "design-add" -> new DesignAddListener(), + "design-update" -> new DesignUpdateListener(), + "design-rm" -> new DesignRemoveListener() ) @OnWebSocketConnect def onConnect(serverSession: Session): Unit = { diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignAddListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignAddListener.scala new file mode 100644 index 0000000..4cc85f9 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignAddListener.scala @@ -0,0 +1,26 @@ +package de.tobias.playpad.server.server.project.sync.listener.design + +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 DesignAddListener extends Listener { + override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = { + val designId = UUID.fromString(json.get("id").getAsString) + val padId = UUID.fromString(json.get("pad").getAsString) + val backgroundColor = json.get("background_color").getAsString + val playColor = json.get("play_color").getAsInt + + SqlHelper.insertOrUpdate(connection, SqlDef.DESIGN, designId, SqlDef.DESIGN_PAD_REF, padId) + SqlHelper.insertOrUpdate(connection, SqlDef.DESIGN, designId, SqlDef.DESIGN_BACKGROUND_COLOR, backgroundColor) + SqlHelper.insertOrUpdate(connection, SqlDef.DESIGN, designId, SqlDef.DESIGN_PLAY_COLOR, playColor) + } +} diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignRemoveListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignRemoveListener.scala new file mode 100644 index 0000000..e8c2c5b --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignRemoveListener.scala @@ -0,0 +1,21 @@ +package de.tobias.playpad.server.server.project.sync.listener.design + +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 DesignRemoveListener extends Listener { + override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = { + val designId = UUID.fromString(json.get("id").getAsString) + + SqlHelper.delete(connection, SqlDef.DESIGN, designId) + } +} diff --git a/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignUpdateListener.scala b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignUpdateListener.scala new file mode 100644 index 0000000..5bf7452 --- /dev/null +++ b/src/main/scala/de/tobias/playpad/server/server/project/sync/listener/design/DesignUpdateListener.scala @@ -0,0 +1,28 @@ +package de.tobias.playpad.server.server.project.sync.listener.design + +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 DesignUpdateListener extends Listener { + override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = { + val designId = UUID.fromString(json.get("id").getAsString) + val padId = UUID.fromString(json.get("project").getAsString) + val field = json.get("field").getAsString + + SqlHelper.insertOrUpdate(connection, DESIGN, designId, DESIGN_PAD_REF, padId) + + field match { + case "background_color" => SqlHelper.insertOrUpdate(connection, DESIGN, designId, DESIGN_BACKGROUND_COLOR, json.get("value").getAsString) + case "play_color" => SqlHelper.insertOrUpdate(connection, DESIGN, designId, DESIGN_PLAY_COLOR, json.get("value").getAsInt) + } + } +} -- GitLab