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 cb503f2ecfca902190eb25a395406c0c2a52fa2f..1c0609b2b37c199caff2ae9507b5649cf1e0935d 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 0000000000000000000000000000000000000000..4cc85f943100cc56b0b7630c19ddd4d955494e03 --- /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 0000000000000000000000000000000000000000..e8c2c5bc7ad4aeba22f9fcecdc9419f87fc56723 --- /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 0000000000000000000000000000000000000000..5bf7452a326c4f02f7b185a31f5c610545673fa4 --- /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) + } + } +}