Skip to content
Snippets Groups Projects
Commit f919ddbc authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Add Page Add, Remove and Update listeners

parent 1bc65d74
No related branches found
No related tags found
No related merge requests found
......@@ -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.page.{PageAddListener, PageRemoveListener, PageUpdateListener}
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}
......@@ -25,7 +26,11 @@ import scala.collection.{Map, mutable}
private val listeners = Map(
"pro-add" -> new ProjectAddListener(),
"pro-update" -> new ProjectUpdateListener(),
"pro-rm" -> new ProjectRemoveListener()
"pro-rm" -> new ProjectRemoveListener(),
"page-add" -> new PageAddListener(),
"page-update" -> new PageUpdateListener(),
"page-rm" -> new PageRemoveListener()
)
@OnWebSocketConnect def onConnect(serverSession: Session): Unit = {
......
package de.tobias.playpad.server.server.project.sync.listener.page
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 PageAddListener extends Listener {
override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
val pageId = UUID.fromString(json.get("id").getAsString)
val projectId = UUID.fromString(json.get("project").getAsString)
val pageName = json.get("name").getAsString
val pagePosition = json.get("position").getAsInt
SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_PROJECT_REF, projectId)
SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_NAME, pageName)
SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_POSITION, pagePosition)
}
}
package de.tobias.playpad.server.server.project.sync.listener.page
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 PageRemoveListener extends Listener {
override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
val projectId = UUID.fromString(json.get("id").getAsString)
SqlHelper.delete(connection, SqlDef.PAGE, projectId)
}
}
package de.tobias.playpad.server.server.project.sync.listener.page
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 PageUpdateListener extends Listener {
override def onChange(json: JsonObject, connection: Connection, session: Session): Unit = {
val pageId = UUID.fromString(json.get("id").getAsString)
val projectId = UUID.fromString(json.get("project").getAsString)
val field = json.get("field").getAsString
SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_PROJECT_REF, projectId)
field match {
case "name" => SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_NAME, json.get("value").getAsString)
case "position" => SqlHelper.insertOrUpdate(connection, SqlDef.PAGE, pageId, SqlDef.PAGE_POSITION, json.get("value").getAsInt)
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment