From 1cf0f0af334361238b234ac854daae5449cdc6f8 Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Fri, 6 Oct 2023 23:42:34 +0200 Subject: [PATCH] #187 - Add new stop-action method to web api --- .../api/websocket/WebSocketHandler.scala | 3 ++- .../websocket/methods/StopActionMethod.scala | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala index 469b8294..8a67fc24 100644 --- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/WebSocketHandler.scala @@ -21,7 +21,8 @@ class WebSocketHandler { "pad-status-change" -> new PadStatusChangeMethod, "cart-action" -> new CartActionMethod, "page-action" -> new PageActionMethod, - "navigate-action" -> new NavigateActionMethod + "navigate-action" -> new NavigateActionMethod, + "stop-action" -> new StopActionMethod ) @OnWebSocketConnect def connected(session: Session): Unit = { diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala new file mode 100644 index 00000000..30622685 --- /dev/null +++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/scala/de/tobias/playpad/plugin/api/websocket/methods/StopActionMethod.scala @@ -0,0 +1,19 @@ +package de.tobias.playpad.plugin.api.websocket.methods + +import com.google.gson.JsonObject +import de.tobias.playpad.PlayPadPlugin +import de.tobias.playpad.pad.PadStatus +import de.tobias.playpad.plugin.api.websocket.MethodExecutable +import de.tobias.playpad.plugin.api.websocket.message.Message +import org.eclipse.jetty.websocket.api.Session + +class StopActionMethod extends MethodExecutable { + + override def execute(session: Session, message: Message): JsonObject = { + val project = PlayPadPlugin.getInstance.getCurrentProject + project.getPads.stream().forEach(pad => { + if ((pad.getStatus eq PadStatus.PLAY) || (pad.getStatus eq PadStatus.PAUSE)) pad.setStatus(PadStatus.STOP, true) + }) + null + } +} -- GitLab